Android 列表视图无法侦听所选项目
Android listview can not listen on selected item
我遇到了一个问题,我无法从 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 设置的监听器不起作用。
任何帮助都会被接受。谢谢
只有当您长按列表的每一行而不是 children.
时,您尝试过的这种方式才会发生
您应该在您的适配器 class 中实施 OnClickListener 以管理每个 child.
的点击
我遇到了一个问题,我无法从 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 设置的监听器不起作用。 任何帮助都会被接受。谢谢
只有当您长按列表的每一行而不是 children.
时,您尝试过的这种方式才会发生
您应该在您的适配器 class 中实施 OnClickListener 以管理每个 child.