【发布时间】:2015-06-05 22:53:34
【问题描述】:
我遇到了一个问题,我无法从 listView 中收听单个项目选择。 这是我的这个页面的 xml 布局结构。
RelativeLayout
LinearLayout
searchText
searchButton
LinearLayout
list
以下是有关如何从文本中获取数据以及如何为列表视图设置侦听器的代码。
private void searchAction() {
TextView searchText = (TextView)findViewById(R.id.searchText);
String userName = searchText.getText().toString();
searchText.clearFocus();
adapter = new SimpleCursorAdapter(this,
R.layout.search_list_item,
null,
new String[]{},
new int[]{},
0);
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
switch(view.getId()) {
// here can add one more line in the main page for each account
return false;
}
});
listView.setAdapter(adapter);
listView.requestFocus();
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View v, int index, long id) {
//String str=listView.getItemAtPosition(index).toString();
Toast.makeText(getBaseContext(), "Index: "+index + "ID: "+id, Toast.LENGTH_LONG).show();
return true;
}
});
listView.setItemsCanFocus(true);
}
我能够从 textView 获取数据。但是我为 listView 设置的监听器不起作用。 任何帮助都将被接受。谢谢你
【问题讨论】:
-
你的意思是它不工作?预期的行为是什么?发生了什么?在这里,您将 Longclick 侦听器设置为整个 listView,而不是列表的每个单独项目。这就是你想要的吗?
-
我正在尝试从 listView 监听单个项目的单击操作。
-
在 onItemLongClick 函数中。我能够获得所选项目的索引。因此我可以对相应的项目执行更多操作。
-
那么您需要一个适配器,您可以在其中管理每个孩子的行为。在此处查看完整示例:vogella.com/tutorials/AndroidListView/…
-
在我的代码中,我首先设置了适配器。这是你想要的吗?
标签: android android-layout listview focus listener