如何修复方法startActivity(Intent)未定义类型new View.OnClickListener()语法错误

Aka*_*ari 5 eclipse android android-emulator

我的代码有语法错误,在"getView"中我想让按钮"update"的监听器移动到另一个活动:

在此输入图像描述

@Override
    public View getView(int position, View convertView, ViewGroup parent) {


        LayoutInflater l = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        View rowView = l.inflate(R.layout.temp, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.textView1);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.imageView1);
        Button update = (Button) rowView.findViewById(R.id.button1);

//      update.setOnClickListener(new View.OnClickListener() {
//          
//          @Override
//          public void onClick(View v) {
//
//                 Intent redirect = new Intent(getApplicationContext(),Update.class);
//                 startActivity(redirect);
//              
//          }
//      });




        textView.setText(sa.get(position));


        return rowView;
    }
Run Code Online (Sandbox Code Playgroud)

我试图解决这些关于"意图"的错误,但我失败了:(

  1. 方法startActivity(Intent)未定义类型new View.OnClickListener()

  2. 方法getApplicationContext()未定义类型new View.OnClickListener()

甚至当我从"onClick"方法移动这些语句时问题没有改变!! 我导入了"Intent"库,如何解决?

Rag*_*dan 14

如果您的适配器位于不同的文件中,则需要活动上下文.

您需要将活动上下文从活动类传递给适配器构造函数.

http://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent)

startActivity是您的活动类的方法.因此,您需要活动上下文来启动活动.

而不是getApplicationContext使用活动上下文.

何时调用活动上下文或应用程序上下文?

通过commonsware检查答案.

     update.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {

            Intent redirect = new Intent(context,Update.class);
            context.startActivity(redirect);    
      }
      });
Run Code Online (Sandbox Code Playgroud)