首页 文章

方法startactivity(intent)未定义类型new view.onclicklistener()

提问于
浏览
1

我正在使用 Eclipse 来创建Android应用程序当编译器尝试执行 startActivity(callIntent); 时,我收到以下错误

方法startactivity(intent)未定义类型new view.onclicklistener()

在下面我的代码:

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@Override
public View getView(int position, View convertView, ViewGroup parent) 
{

       View vi = convertView;
         if (vi == null)
           vi = inflater.inflate(getContext(), R.layout.row_listview, null);              
       Button call_btn =(Button)vi.findViewById(R.id.call_btn);
       call_btn.setOnClickListener(new View.OnClickListener(){
           @Override
          public void onClick(View v) { 
               Intent callIntent = new Intent(Intent.ACTION_CALL);
               callIntent.setData(Uri.parse("tel:123456789"));
               startActivity(callIntent); //error occurred here <-------
               notifyDataSetChanged();
         }
       });

       return vi;
   }

问题是什么 ?

3 回答

  • 2

    这个问题已在另一个问题中得到解答thread startActivity 未定义为 onClickListener 所以你需要使用参数 View v

    v.getContext().startActivity(i);
    
  • 2

    startActivity只能从Activity或Fragment定义,你应该试试

    ((Activity)v.getContext()).startActivity(intent);

    如果你从任何视图或适配器调用 .

    如果从Activity的Java文件中调用,请尝试

    ActivityName.this.startActivity(intent);

  • 3

    首先,该方法名为 startActivity() ,而不是 StartActivity() . Java是一种区分大小写的编程语言 .

    其次,使用 ThisIsYourActivityName.this.startActivity() ,其中 ThisIsYourActivityName 是此代码所在的活动类的名称 . 这假定您的上面的代码段来自一个活动;如果不是,请编辑您的问题以提供此Java类的代码 all .

相关问题