我正在使用 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 回答
这个问题已在另一个问题中得到解答thread
startActivity
未定义为onClickListener
所以你需要使用参数View v
:startActivity只能从Activity或Fragment定义,你应该试试
((Activity)v.getContext()).startActivity(intent);
如果你从任何视图或适配器调用 .
如果从Activity的Java文件中调用,请尝试
ActivityName.this.startActivity(intent);
首先,该方法名为
startActivity()
,而不是StartActivity()
. Java是一种区分大小写的编程语言 .其次,使用
ThisIsYourActivityName.this.startActivity()
,其中ThisIsYourActivityName
是此代码所在的活动类的名称 . 这假定您的上面的代码段来自一个活动;如果不是,请编辑您的问题以提供此Java类的代码 all .