Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:使列表视图中的单个项目可单击_Java_Android - Fatal编程技术网

Java Android:使列表视图中的单个项目可单击

Java Android:使列表视图中的单个项目可单击,java,android,Java,Android,我目前有一个ListViewid=ListView,我正在用ArrayListid=myarraylist填充它。我是这样做的: final ListView listview = (ListView) findViewById(android.R.id.list); myarraylist = (ArrayList<String>) getArray(); adapter = new ArrayAdapter<String>(this, android.R.layout

我目前有一个
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);        
我的问题是,当在
列表视图中单击元素
重置高分
时,我如何使
某些东西
发生

编辑:这是我到目前为止得到的

    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

            }

        }

    });
listview.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
@凌驾
字符串myString=(字符串)parent.getAdapter().getItem(位置);
if(myString.equals(“清除高分”)){
//东西
}
}
});

列表视图
,就像按钮
一样,具有设置单击侦听器的功能,但是对于
列表视图
,方法的名称是
setOnItemClickListener()
。但是,它没有使用
OnClickListener
,而是使用了一个名为
OnItemClickListener
的类,这对于与
ListView
一起使用更为有利。方法如下所示:

yourListView.setOnItemClickListener(new OnItemClickListener() {  

        @Override
        public void onItemClick(AdapterView<?> parent, 
                View view, int position, long id)
        {
            // some stuff
        }
    }
)
yourListView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共无效MClick(AdapterView父级、,
视图、整型位置、长id)
{
//一些东西
}
}
)
这样做的好处是,你可以检查你按下的位置所包含的内容,因此你解决问题的方法可以如下所示:

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
        }
    }
});
yourListView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共无效MClick(AdapterView父级、,
视图、整型位置、长id)
{
字符串myString=(字符串)parent.getAdapter().getItem(位置);
if(myString.equals(“重置高分”))
{
//做你想做的
}
}
});

这会让你开始。。。Andrew是对的。

我想你需要的是这里:@PedroHawk我刚才在看这个,但我想这个例子是用于单击ListView上的任意位置,而不是特定的位置。然后你可以使用位置参数来验证你的
myarraylist.get(POSITION)
是否等于你想要的。酷,但是这个方法怎么知道正在单击
listview
?我是否必须使用
listview.onItemClick
?@user3728164您必须像设置按钮一样设置
OnItemClickListener
。我编辑了我的答案以反映这一点。当我尝试此操作时,我发现错误
类型ListView的方法onItemClick(new OnItemClickListener(){})未定义,
OnItemClickListener无法解析为类型
,您使用了错误的方法。要设置侦听器,请使用
setOnItemClickListener()
,而不是
onItemClick()
.hmm。。现在它说,
类型AdapterView中的方法setOnItemClickListener(AdapterView.OnItemClickListener)不适用于参数(new-OnItemClickListener(){})
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
        }
    }
});
   /**
 * Creates a new instance
 */
public void onListItemClick(ListView l, View v, int position, long id) {
    // Notify the parent activity of selected item
    super.onListItemClick(l, v, position, id);
   //Do stuff

}