首页 > 解决方案 > 按钮单击事件不起作用 - 为什么会这样?

问题描述

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

  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);

    }

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

标签: android

解决方案


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

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);
        }

推荐阅读