【问题标题】:the method startactivity(intent) is undefined for the type new view.onclicklistener()未定义类型 new view.onclicklistener() 的方法 startactivity(intent)
【发布时间】:2015-05-01 15:43:51
【问题描述】:

我正在使用 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;
   }

有什么问题?

【问题讨论】:

  • 可能是拼写错误,但是当它应该是 startActivity(callIntent) 时,你有 StartActivity(callIntent)。另外,这个 getView 方法是在 Fragment 或 Activity 中,还是在适配器中?

标签: android eclipse


【解决方案1】:

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

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

如果您从任何视图或适配器调用。

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

ActivityName.this.startActivity(intent);

【讨论】:

  • 我更喜欢另一个问题,因为 startActivity() 是 Context 上的一个方法;您不需要将其转换为 Activity...无论如何谢谢
【解决方案2】:

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

v.getContext().startActivity(i);

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 谢谢,这是我在适配器上的工作,所以我使用了 ((Activity)v.getContext()).startActivity(intent);
    • @MohamadMahmoud: startActivity()Context 上的一个方法;您不需要将其转换为 Activity
    猜你喜欢
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多