我正在尝试创建一个可以动态创建按钮的“添加”按钮,但我在以下方面遇到了问题:
Button mybutton = new Button (this);
我不知道为什么this
可以应用OnClickListener
。
答案 0 :(得分:5)
你在View.OnClickListener
内,所以使用this
传递OnClickListener
而不是上下文,这是非法的。
使用HalamanDepanActivity.this
答案 1 :(得分:1)
这是Android中Button
的构造函数
public Button (Context context)
在您的情况下,this
不是Context
所以你需要将this
更改为getApplicationContext()
或HalamanDepanActivity.this
答案 2 :(得分:1)
在实例方法或构造函数中,这是对它的引用 当前对象 - 其方法或构造函数所在的对象 调用。您可以从内部引用当前对象的任何成员 使用它的实例方法或构造函数。
您使用 onClick 的this
关键字内侧,因此它将参考当前的方法。
您必须通过YourActivity.this
而不是this
或
您可以尝试使用Context
:
Context context = getApplicationContext();
Button button = new Button(context);
可能会明确this
谢谢。