gpt4 book ai didi

android - 是否可以在同一个 Activity 中有多个 onContextItemSelected

转载 作者:行者123 更新时间:2023-11-30 03:17:10 28 4
gpt4 key购买 nike

link1的帮助下和 link2 ,我像这样为我的两个 ListView 创建了一个 ContextMenu

    final int DELETE = 0;
final int CANCEL = 1;
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
super.onCreateContextMenu(menu, v, menuInfo);
switch(v.getId()){
case R.id.history_listView:
menu.setHeaderTitle("Delete History?");
menu.add(0, DELETE, 0, "Delete");
menu.add(0, CANCEL, 0, "Cancel");
break;

case R.id.bookmark_listView:
menu.setHeaderTitle("Delete Bookmark?");
menu.add(0, DELETE, 0, "Delete");
menu.add(0, CANCEL, 0, "Cancel");
}
}

现在我想要两个 onContextItemSelected 方法,一个用于历史记录,另一个用于书签。我为历史创建了一个,运行良好。

@Override
public boolean onContextItemSelected(MenuItem item){
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

switch(item.getItemId()){
case DELETE:
String deleteSelectedHistory = (String) historyData.get(info.position);
historyData.remove(info.position);
historyAdapter.notifyDataSetChanged();

break;

case CANCEL:
break;
}
return false;
}

但我无法为书签创建另一个。是否可以在同一 Activity 中使用另一个 onContextItemSelected 方法?或者有没有办法创建第二个?

最佳答案

请检查此代码。它可能对您有所帮助。

final int HIS_DELETE = 0;
final int HIS_CANCEL = 1;
final int BM_DELETE = 2;
final int BM_CANCEL = 3;

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
switch (v.getId()) {
case R.id.history_listView:
menu.setHeaderTitle("Delete History?");
menu.add(0, HIS_DELETE, 0, "Delete");
menu.add(0, HIS_CANCEL, 0, "Cancel");
break;

case R.id.bookmark_listView:
menu.setHeaderTitle("Delete Bookmark?");
menu.add(0, BM_DELETE, 0, "Delete");
menu.add(0, BM_CANCEL, 0, "Cancel");
}
}

和 onContextItemSelected 方法一样,

    @Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();

switch (item.getItemId()) {
case HIS_DELETE:
Log.d("System out", "HIS_DELETE");
break;
case HIS_CANCEL:
Log.d("System out", "HIS_CANCEL");
break;
case BM_DELETE:
Log.d("System out", "BM_DELETE");
break;
case BM_CANCEL:
Log.d("System out", "BM_CANCEL");
break;
}
return false;
}

关于android - 是否可以在同一个 Activity 中有多个 onContextItemSelected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19856140/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com