我已经实施了custom list view
。 (使用活动和ListRowAdapter
扩展BaseRowAdaptor
)
我将contextmenu
设置为listview设置
itemView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener()
{
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
menu.setHeaderTitle("Context Menu");
menu.add(0, v.getId(), 0, "Action 1");
// menu.add(0, v.getId(), 0, "Action 2");
}
});
我的适配器类中的getView
方法。
但是如何处理项目选择事件?
我可以在我的Activity
中抓住该事件。
但是如何识别列表视图的行?
答案 0 :(得分:0)
您可以创建一个全局int变量,其中包含您选择的项目的索引。您可以在listview onLongClick(),onClick()等事件中设置变量的值。然后,当您进入上下文菜单的项目单击事件时,您将可以访问列表视图中当前选定的行。
答案 1 :(得分:0)
将LongClickListener设置为listview,然后在longClick上设置showContext菜单。
Class ActivityName extends Activity implements IconContextItemSelectedListener
{
private IconContextMenu cmContextMenu;
private int selectedPosition ;
onCreate() {
cmContextMenu = new IconContextMenu(this, R.menu.fbupdatecontextmenu);
cmContextMenu.setOnIconContextItemSelectedListener(this);
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> av, View v, int position, long arg3) {
selectedPosition = position;
cmContextMenu.show();
return true;
}
});
}
public void onIconContextItemSelected(MenuItem item, Object info) {
switch (item.getItemId()) {
case R.id.someThing: {
system.out.prinlt("position " +selectedPosition);
break;
}
}
}