为什么我不能在下面的代码中将this作为上下文传递?我收到错误消息
The constructor DataManager(new View.OnClickListener(){}) is undefined
我是android编程的新手,所以如果问题很奇怪,很抱歉!
任何帮助都是最好的。
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");
}
}); public DataManager(Context cont) {
super(cont, DBname, null, DBver);
}
....发布于 2012-10-19 04:03:13
因此,在实例化DataManager时,并不是将上下文作为参数传递,而是实际传递OnClickListener的实例。
DataManager dm=new DataManager(YOUR_CLASS_NAME.this);YOUR_CLASS_NAME应该是活动类名。即
class MyClass extends Activity{
public onCreate(Bundle savedInstanceState){
Button btn = new Button();
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
DataManager dm=new DataManager(MyClass.this);
}
});
}
}试一试,让我知道它的进展如何
发布于 2012-10-19 03:51:35
您已经编写了匿名类new OnClickListener() {
没有将OnClickListener作为类型参数的DataManager类的构造函数。
我认为您需要使用getApplicationContext();而不是this
发布于 2012-10-19 03:58:21
"this“是对包含类的当前实例的引用。
在使用"this“的地方,它指的是onClickListener类型的匿名内部类的实例。
我相信您可能想要传递定义onClickListener的活动的上下文?如果是,请使用MyActivity.this,其中MyActivity是活动类的名称。
https://stackoverflow.com/questions/12962612
复制相似问题