我目前有一个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
}
}
});
最佳答案
ListView
和 Button
一样,都有设置点击监听器的能力,但是对于 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/