java OnClickListener超级
为什么我不能在下面的代码中将this
作为上下文传递?
我犯了一个错误
The constructor DataManager(new View.OnClickListener(){}) is undefined
我是安卓编程新手,若这个问题很奇怪,那个么很抱歉
任何帮助都会很好
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.d("vkx", "clk insert");
String qq="insert into users(id,name,password) values ('6','usrs','passs')";
DataManager dm=new DataManager(this);
dm.SqliteExecutenonquery(qq);
Log.d("vkx", "clk insert done");
}
});
我有我的DataManger
课
public DataManager(Context cont) {
super(cont, DBname, null, DBver);
}
....
# 1 楼答案
您已经编写了匿名类
new OnClickListener() {
以
OnClickListener
作为类型参数的DataManager
类没有构造函数我认为你需要使用
getApplicationContext();
而不是this
# 2 楼答案
在
setOnClickListener
之前添加此行:在你的听众中使用这个
# 3 楼答案
“this”是对包含类的当前实例的引用
在使用“this”的地方,它指的是onClickListener类型的匿名内部类的实例
我相信您可能希望传递定义onClickListener的活动的上下文?如果是,请使用
MyActivity.this
,其中MyActivity是活动类的名称# 4 楼答案
只要写
MyClassName.this
,假设“MyClassName”是活动的名称# 5 楼答案
因此,在实例化DataManager时,您所做的不是将上下文作为参数传递,而是实际传递OnClickListener的实例
您的\u类\u名称应为活动类名称。即
试试看,让我知道进展如何