【问题标题】:Button click event is not working - why so?按钮单击事件不起作用 - 为什么会这样?
【发布时间】:2018-12-27 22:02:04
【问题描述】:

我正在尝试点击动态生成的按钮

  for (i = 0; i < Randombutton.size(); i++) {

        Button btn = new Button(getApplicationContext());

        //set button text
        btn.setText(String.valueOf(Randombutton.get(i)));

        //set button default color
        btn.setBackgroundColor(Color.parseColor("#f2f2f2"));
        btn.setTextSize(36);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // Button clickedBtn = (Button) v;
                //  Log.w("cliked",String.valueOf(clickedBtn.getText()));
                Log.w("cliked", "test");
            }
        });

        RandomButtonView.addView(btn);

    }

按钮显示正常,但单击事件不起作用。

【问题讨论】:

  • 你会创建一个或多个按钮吗?
  • 分配按钮 ID
  • @B.mansouri 是的,我创建了多个按钮。
  • @MiteshMachhoya 但我怎么能。这里我随机生成按钮
  • 尝试引用此链接。希望这会有所帮助:stackoverflow.com/questions/19823419/…

标签: android


【解决方案1】:

我试过这段代码,它工作正常。请在您的最后检查。

for (int i = 0; i < 5; i++) {

            Button btn = new Button(this);
            // btn.setId(i);
            btn.setText(String.valueOf("Test : " + (i + 1)));
            btn.setBackgroundColor(Color.parseColor("#f2f2f2"));
            btn.setTextSize(8);
            btn.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    Button clickedBtn = (Button) v;
                    Toast.makeText(DynamicView.this, clickedBtn.getText().toString(), Toast.LENGTH_SHORT).show();
                }
            });

            layout_dynamic_content.addView(btn);
        }

【讨论】:

  • 谢谢,我只是将 Button btn = new Button(getApplicationContext()) 更改为 Button btn = new Button(this) 现在它可以工作了
猜你喜欢
  • 2018-09-18
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-06
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
相关资源
最近更新 更多