Java 超级监听器
为什么我不能在下面的代码中将此作为上下文传递? 我犯了一个错误Java 超级监听器,java,android,Java,Android,为什么我不能在下面的代码中将此作为上下文传递? 我犯了一个错误 构造函数数据管理器(new View.OnClickListener(){})未定义 我是android编程新手,若这个问题很奇怪,那个么很抱歉 任何帮助都会很好 btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-
构造函数数据管理器(new View.OnClickListener(){})未定义
我是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");
}
});
我有我的DataManger
课程
public DataManager(Context cont) {
super(cont, DBname, null, DBver);
}
....
您已经编写了匿名类
newonClickListener(){
没有将OnClickListener
作为类型参数的DataManager
类的构造函数
我认为您需要使用getApplicationContext();
“this”是对包含类的当前实例的引用,而不是this
在使用“this”的地方,它指的是onClickListener类型的匿名内部类的实例
我相信您可能希望传递定义onClickListener的活动的上下文?如果是这样,请使用
MyActivity。此
,其中MyActivity是活动类的名称。只需编写MyClassName。此
,假设“MyClassName”是您活动的名称。在setOnClickListener
添加此行:
final Context ThisContext = this;
在你的听众中使用这个
DataManager dm=new DataManager(ThisContext);
因此,在实例化DataManager时,您所做的不是将上下文作为参数传递,而是实际传递OnClickListener的实例
DataManager dm=new DataManager(YOUR_CLASS_NAME.this);
您的类名称应为活动类名称。即
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);
}
});
}
}
试试看,让我知道进展如何太好了,,,我太爱你了。