创建类并将它们用于项目

时间:2012-03-24 08:47:53

标签: java android

我的应用程序中有很多按钮,对于我需要创建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

我不知道我哪里出错了我错过了什么。请帮我解决这个问题

3 个答案:

答案 0 :(得分:0)

在当前上下文中找不到

startActivity,因为您的类不是ActivitystartActivityActivity类的方法)。 请查看此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)

等前缀