【问题标题】:Android ListView object not liking new onItemClickListener() as argument to setOnitemClickListener()Android ListView 对象不喜欢新的 onItemClickListener() 作为 setOnitemClickListener() 的参数
【发布时间】:2013-01-30 05:15:37
【问题描述】:

所以,我正在尝试学习一些基本的 android 编程,但当我尝试为以编程方式生成的 ListView 设置 onItemClick() 方法时遇到了障碍。 eclipse 给我的错误指出,“AdapterView 类型中的方法 setOnItemClickListener(AdapterView.OnItemClickListener) 不适用于参数(新的 onItemClickListener(){})”。我完全糊涂了。我曾多次尝试清理该项目,以防出现问题。我也尝试了this similar question 中的建议,但没有成功。不幸的是,这是我发现的唯一与我的问题相关的问题,因为大多数关于 onItemClickListener 的问题都处理它没有被正确调用。我在建议的代码中查看了这些问题,并试图确保我的代码遵循建议的内容。任何帮助,将不胜感激。这是有问题的sn-p代码:

import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {
public ArrayList<ContactData> data;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.contact_list);
    data = getContacts(); // creates arraylist for contact data
    ArrayList<String> names = new ArrayList<String>();
    for (ContactData item: data) {
        names.add(item.getName());
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.textview, names);
    ListView listView = (ListView) findViewById(R.id.listview1);
    listView.setAdapter(adapter);
    //listView.setClickable(true);
    // set click listener
    listView.setOnItemClickListener(new AdapterView.onItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            TextView textView = (TextView) view;
            String name = textView.getText().toString();
            Toast.makeText(getBaseContext(), name, Toast.LENGTH_SHORT).show();
        }
    });
}

编辑:发现 Eclipse 没有运气,我一时兴起尝试了 Google 提供的终端工具,并尝试以这种方式构建我的项目。它起作用了,所以eclipse搞砸了。我不知道如何或什么,但现在一切正常。

【问题讨论】:

    标签: java android eclipse


    【解决方案1】:

    这是一个小错误。换行

    listView.setOnItemClickListener(new AdapterView.onItemClickListener() {
    

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    

    (你错过了 OnItemClickListener 中的大写“O”)

    【讨论】:

    • 不幸的是,这并没有解决它。我仍然遇到同样的错误,除了错误中的 o 也是大写的。不过还是谢谢你的建议。
    【解决方案2】:

    尝试导入 android.widget.AdapterView.OnItemClickListener

    【讨论】:

      【解决方案3】:

      发现 Eclipse 没有运气,我一时兴起尝试了 Google 提供的终端工具,并尝试以这种方式构建我的项目。它起作用了,所以eclipse搞砸了。我不知道如何或什么,但现在一切正常。至于让我的代码编译和工作,它已经回答了。

      【讨论】:

        猜你喜欢
        • 2018-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-27
        • 1970-01-01
        • 2015-08-06
        相关资源
        最近更新 更多