java - Android:使 ListView 中的单个项目可点击

标签 java android

我目前有一个ListView id=listview ,我正在填充 ArrayList id=myarraylist 。我是这样做的:

final ListView listview = (ListView) findViewById(android.R.id.list);
myarraylist = (ArrayList<String>) getArray();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mylist);

myarraylist.add(...And then some other stuff I add...);

//This is the part I want to focus on
myarraylist.add("Reset High Scores");

adapter.notifyDataSetChanged();
listview.setAdapter(adapter);        

现在,我想要条目 Reset High Scores在我的ListView可点击,当点击它时,我希望它执行 Some Stuff 。我知道对于按钮,您所做的就是设置一个 onClickListener

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

        ..Some Stuff..

    }
});

我的问题是,我怎样才能制作 Some Stuff当元素 Reset High Scores 时发生在 ListView 中单击

编辑:这是我到目前为止所拥有的

    listview.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            @Override               
            String myString = (String) parent.getAdapter().getItem(position);
            if(myString.equals("Clear High Scores")) {

                //Stuff

            }

        }

    });

最佳答案

ListViewButton 一样,都有设置点击监听器的能力,但是对于 ListView 来说,方法的名称是 setOnItemClickListener()。不过,它没有使用 OnClickListener,而是使用名为 OnItemClickListener 的类,该类对于与 ListView 一起使用更有利。该方法如下所示:

yourListView.setOnItemClickListener(new OnItemClickListener() {  

        @Override
        public void onItemClick(AdapterView<?> parent, 
                View view, int position, long id)
        {
            // some stuff
        }
    }
)

现在这样做的好处是,您可以检查您按下的位置包含的内容,因此解决问题的方法可能如下所示:

yourListView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, 
            View view, int position, long id)
    {
        String myString = (String) parent.getAdapter().getItem(position);

        if(myString.equals("Reset High Scores"))
        {
            // Do what you want
        }
    }
});

关于java - Android:使 ListView 中的单个项目可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24187852/

相关文章:

java - 如何在 ROOTED 设备上录制 VOIP 电话?

Java套接字读取期间超时

java - android listview null 试图 setAdapter()

android - Android 设备摄像头图像的人体形状检测

java - 上传图片时出现问题

android - 在项目 'app' 中,已解决的 Google Play 服务库依赖项依赖于另一个确切版本

java - Java中静态变量和静态 block 是如何分配内存的?

java - 应用程序子类的空指针异常

android - 删除没有id的通知 channel

android - 区域设置更改后防止应用程序语言更改