ContextMenu上下文菜單,和電腦上單擊鼠標右鍵出現的快捷菜單等同,即安卓中長按某項(2秒左右)出現的快捷菜單,
ContextMenu上下文菜單創建方法:
1.重寫Activity的onCreateContextMenu()方法,調用Menu的add方法添加菜單項
2.重寫onContextItemSelected()方法,響應菜單單擊事件
3.調用registerForContexMenu()註冊上下文菜單
main.xml
[html] <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>TestActivity.java
[java] public class TestActivity extends Activity {
ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView=(ListView)findViewById(R.id.listView);
//為listView註冊上下文菜單ContextMenu
//方法1
this.registerForContextMenu(listView);
//方法2
//listView.setOnCreateContextMenuListener(this);
String [] s={"特凡·薩爾瓦托 Stefan Salvatore",
"艾琳娜·吉爾伯特 Elena Gilbert",
"達蒙·薩爾瓦托 Damon Salvatore",
"傑裡米·吉爾伯特 Jeremy Gilbert",
"卡羅琳·福佈斯 Caroline Forbes"};
ArrayAdapter aa=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,s);
listView.setAdapter(aa);
}
//創建上下文菜單
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo mi) {
menu.setHeaderTitle("你猜啊~ 0,0");
//配置上下文菜單選項
menu.add(0, Menu.FIRST +1, 1, "海賊王");
menu.add(0, Menu.FIRST +2, 2, "暮光之城");
menu.add(0, Menu.FIRST +3, 3, "吸血鬼日記");
menu.add(0, Menu.FIRST +4, 4, "齊天大聖");
//super.onCreateContextMenu(menu, v, mi);
}
//響應上下文菜單的點擊事件
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getItemId()==Menu.FIRST + 3){
Toast.makeText(this, "ORZ,你聰明屎啦!", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "這有個毛聯系!", Toast.LENGTH_SHORT).show();
}
return super.onContextItemSelected(item);
}
}
public class TestActivity extends Activity {
ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView=(ListView)findViewById(R.id.listView);
//為listView註冊上下文菜單ContextMenu
//方法1
this.registerForContextMenu(listView);
//方法2
//listView.setOnCreateContextMenuListener(this);
String [] s={"特凡·薩爾瓦托 Stefan Salvatore",
"艾琳娜·吉爾伯特 Elena Gilbert",
"達蒙·薩爾瓦托 Damon Salvatore",
"傑裡米·吉爾伯特 Jeremy Gilbert",
"卡羅琳·福佈斯 Caroline Forbes"};
ArrayAdapter aa=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,s);
listView.setAdapter(aa);
}
//創建上下文菜單 www.aiwalls.com
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo mi) {
menu.setHeaderTitle("你猜啊~ 0,0");
//配置上下文菜單選項
menu.add(0, Menu.FIRST +1, 1, "海賊王");
menu.add(0, Menu.FIRST +2, 2, "暮光之城");
menu.add(0, Menu.FIRST +3, 3, "吸血鬼日記");
menu.add(0, Menu.FIRST +4, 4, "齊天大聖");
//super.onCreateContextMenu(menu, v, mi);
}
//響應上下文菜單的點擊事件
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getItemId()==Menu.FIRST + 3){
Toast.makeText(this, "ORZ,你聰明屎啦!", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "這有個毛聯系!", Toast.LENGTH_SHORT).show();
}
return super.onContextItemSelected(item);
}
}
摘自 柒尐狐的專欄