ContextMenu是支持长点击,同长用在ListView,GridView等控件中,实现一个ContextMenu菜单通常需要以下几步:
1,向某个View注册上下文菜单,通过调用 registerForContextMenu() 如, registerForContextMenu(listView);
2,在Activity或者在Fragment中实现 onCreateContextMenu()方法,如,
1 public void onCreateContextMenu(ContextMenu menu, View v, 2 ContextMenuInfo menuInfo) { 3 // TODO 自动生成的方法存根 4 5 super.onCreateContextMenu(menu, v, menuInfo); 6 MenuInflater inflater = getMenuInflater(); //Menuinflater实例允许加载上下文菜单, 7 inflater.inflate(R.menu.main, menu); 8 }
3,实现onContextItemSelected()
.方法,当用户选中一个菜单项时,系统会自动调用这个函数。如,
1 //响应上下文菜单的操作 2 @Override 3 public boolean onContextItemSelected(MenuItem item) { 4 // TODO Auto-generated method stub 5 switch (item.getItemId()) { 6 case R.id.delete: 7 Toast.makeText(MainActivity.this, "Delete", 1).show(); 8 break; 9 case R.id.share: 10 Toast.makeText(MainActivity.this, "Share", 1).show(); 11 break; 12 case R.id.edit: 13 Toast.makeText(MainActivity.this, "Edit", 1).show(); 14 break; 15 } 16 return super.onContextItemSelected(item); 17 }
下面给出整个源代码:
在activity_main.xml文件中:
12 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" > 5 6 <ListView 7 android:id="@+id/listView1" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:layout_alignParentLeft="true" 11 android:layout_alignParentTop="true" > 12 13 14
在main.xml文件中:
1
在MainActivity.java文件中:
public class MainActivity extends Activity { private List
运行结果:
---恢复内容结束---