得到一個選擇的視我現在有一個擴展ListActivity
試圖從onContextItemSelected
我膨脹的活動與ListAdapter
與數據庫中的項主要活動。 我有作爲上下文菜單操作的充氣條目,但我希望能夠從選中的ListView中的其中一個TextViews
獲取值,當它被點擊時,我已經獲得了OnListItemClick listener
。
問題是,當長按發生激活上下文菜單時,OnItemClickListener
沒有註冊,我無法像從常規短按中獲得ListView
的值。 onListItemClick
在點擊時可以看到View
,但onContextItemSelected
沒有,只能看到MenuItem
。
public class EntryActivity extends ListActivity
{
String currentItemName;
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
//The Value i need is this: currentItemName,
//and i need it to register when a list item is clicked
TextView curName =(TextView)v.findViewById(R.id.txtName) ;
currentItemName = curName.getText().toString();
}
//I need to use the String obtained from the click in the context menu
//to call a method, but a long click makes the onContextItemSelected
//be called, so onItemClickListener is never called, and i cant get the string
@Override
public boolean onContextItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case ADD_ONE:
methodCalled(currentItemName);
break;
}
}
//I am inflating the list with a DataAdapter and a ListAdapter
private void refresh()
{
//create an array the size of the cursor(one item per row)
InventoryItem[] items = new InventoryItem[c.getCount()];
//create and set the DataAdaptor with the array of inventory items, to the
//inventoryList layout
da = new DataAdapter(this, R.layout.inventorylist, items);
setListAdapter(da);
}
}
有沒有什麼辦法讓我點擊的視圖可以用於contextMenu偵聽器?還是我以錯誤的方式去做這件事?
謝謝你的回覆,但我有點困惑。我看到如何設置listview onLonClick監聽器是有幫助的,但我不知道如何描述它,在省略號(...)中放置什麼。你的意思是我必須讓一個監聽器啓動上下文菜單嗎?或者是我真的會創建一個AlertDialog,它將列出菜單項,並充當上下文菜單? – user2338256