android - 按钮单击事件不起作用 - 为什么会这样?
问题描述
我正在尝试单击动态生成的按钮
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);
}
按钮显示正常,但单击事件不起作用。
解决方案
我试过这段代码,它工作正常。请在您的最后检查。
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);
}
推荐阅读
- database - 在 oracle 中插入额外的相同行数但具有负值
- c# - TelerikCombobox 用于 itemtemplate 中的 blazor 搜索
- firebase - Firestore 文档没有被删除
- c# - 使用子文件夹中的 C# 进程安装带有 setup.exe 的程序,包括多个 msi 文件
- mysql - MySQL:刷新权限对现有连接无效
- python - Pymongo 动态生成查找查询
- c++ - 如何初始化已经在 C++ 中声明的唯一锁?
- c# - 代理后面的 C# UpdateSession (WUApi.dll)
- python - 如何在 python 中使用自定义比较器函数对 2D 列表进行排序?
- java - 如果 bean 列表为空,OpenCSV 不会写入标题