我有一個列表視圖,它根據用戶通過編輯文本的輸入從SQLite db中填充文本。我的代碼是:從通過LongClick嵌套在ListView中的TextView獲取文本
Cursor cursor = mDbHelper.searchDb((query != null ? query.toString() : "@@@@"));
if (cursor == null)
{
}
else
{
String[] from = new String[]
{
COLUMN-1,
COLUMN-2,
COLUMN-3
};
int[] to = new int[]
{
R.id.textView1,
R.id.textView2,
R.id.textView3
};
SimpleCursorAdapter cursorAdapter1 = new
simpleCursorAdapter(this,R.layout.searchResults, cursor, from, to);
mListView.setAdapter(cursorAdapter1);
registerForContextMenu(mListView);
和我的ContextMenu
@Override
public boolean onContextItemSelected(MenuItem item)
{
AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems =
{
"Option-1",
"Option-2"
};
String menuItemName = menuItems[menuItemIndex];
TextView textView4 = (TextView) findViewById(R.id.textView1);
String text = textView4.getText();
if(menuItemIndex == 0)
{
Toast.makeText(getApplicationContext(),text,Toast.LENGTH_LONG).show();
}
return true;
}
我試圖獲取項目的文本(TextView的ListView中),通過在吐司字符串「文本」長期點擊。但它總是返回列表的第一個可查看項目的文本,而不管哪個項目被點擊?我無法弄清楚在代碼中我錯了什麼地方?
謝謝!它爲我工作。但是,如果我在上面的情況下長按一個選項菜單(ContextMenu),首先點擊上下文菜單,它不會執行任何操作,並且對於後續的點擊,它會直接顯示結果而不顯示上下文菜單(老實說會顯示上下文菜單的時間正在進入上下文菜單點擊事件而無需等待點擊) – 2014-10-17 13:35:06