我的应用程序中有很多按钮,对于我需要创建onClickListener的每个按钮,这将会激活代码行。
所以我在下面为onClickListener创建一个类:
import android.app.Activity;
import android.content.Intent;
import android.view.View;
public class OnClickListener implements android.view.View.OnClickListener{
Activity current;
Class<?> goTo;
public OnClickListener(Activity arg0, Class arg1){
this.current = arg0;
this.goTo = arg1;
}
@Override
public void onClick(View v) {
Intent intent = new Intent(current, goTo);
}
}
现在我想在按钮点击时转到下一个活动但是当我把这行startActivity(intent);
编译器显示错误The method startActivity(Intent) is undefined for the type OnClickListener
我不知道我哪里出错了我错过了什么。请帮我解决这个问题
答案 0 :(得分:0)
startActivity
,因为您的类不是Activity
(startActivity
是Activity
类的方法)。
请查看此link以了解有关Activity
类的更多信息。
回到你的问题:如果current
成员变量设置得很好,那么你可以执行以下操作:
@Override
public void onClick(View v) {
Intent intent = new Intent(current, goTo);
current.startActivity (intent);
}
答案 1 :(得分:0)
你也可以用其他方式做,让你的类实现OnClickListener
接口,然后实现onClick(...)
方法,在该方法中,打开视图的id,如下所示:
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btn1:
...
case R.id.btn2:
...
}
}
答案 2 :(得分:-1)
将活动名称用作MyActivity.this.startActivity(intent)