我在游戏商店有1个应用程序,我想为他做一个新菜单。
当按下列表视图的项目时,我想显示类似于whatsapp的菜单。
我有这个。
我需要做些什么来显示像whatsapp这样的菜单?
lista是一个列表视图
lista.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
registerForContextMenu(lista);
return true;
}
});
现在我使用了contextmenu,但是当我在项目中单击很长时间时,上下文菜单无效
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Menú");
menu.add(0, v.getId(), 0, "Abrir");
menu.add(0, v.getId(), 0, "Cambiar nombre");
menu.add(0, v.getId(), 0, "Borrar");
menu.add(0, v.getId(), 0, "Poner alarma");
}
答案 0 :(得分:2)
答案 1 :(得分:0)
1º声明
中上下文菜单的项目/res/menu/NAMEOFXMLUWANT.XML
像这样<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/Abrir"
android:title="@string/Abrir" />
<item android:id="@+id/Editar"
android:title="@string/Edit" />
<item android:id="@+id/Borrar"
android:title="@string/delete" />
<item android:id="@+id/Alarma"
android:title="@string/Alarma" />
</menu>
2º-AFTER你想要在LIST VIEW中进行上下文菜单
lista = me listview
lista = (ListView) findViewById(R.id.Lista);
final ArrayAdapter<String> adaptador = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, ficheros);
lista.setLongClickable(true);
lista.setAdapter(adaptador);
lista.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) { //here u set u rute
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
}
});
3ºANDFINALY,你设置你点击项目
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item
.getMenuInfo();
switch (item.getItemId()) {
case R.id.Editar:
System.out.println("Editar");
return true;
case R.id.Borrar:
System.out.println("borrar");
return true;
case R.id.Abrir:
System.out.println("Abrir");
return true;
case R.id.Alarma:
System.out.println("Alarma");
return true;
default:
return super.onContextItemSelected(item);
}
}
对我而言,这一切都是如此:)