1.菜单栏的使用1 public boolean onCreateOptionsMenu(Menu menu) { MenuItem menuitem = menu.add(100,100,1,"我弟弟"); //menu.add(groupId, itemId, order, title); menuitem.setTitle("我不知道啊"); return true; } public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case 100: // TODO Auto-generated method stub break; } return super.onOptionsItemSelected(item); } 2.菜单栏的使用2 public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } Xml: <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_settings" android:icon="@drawable/ic_launcher" android:orderInCategory="100" android:showAsAction="ifRoom|withText" //显示在bar android:title="设置"> <menu> <item android:id="@+id/s1" android:title="设置一"> </item> <item android:id="@+id/s2" android:title="设置二"> </item> </menu> </item> <item android:id="@+id/action_settings" android:orderInCategory="101" android:title="用户"/> </menu> 3.菜单中的上下文菜单(API level 11) (多使用在ListView、GridView) 1.floating context menu protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (ListView) this.findViewById(R.id.listview); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData()); listview.setAdapter(adapter); // 给listView注册上下文菜单 registerForContextMenu(listview); } private List<String> getData() { List<String> list = new ArrayList<String>(); for (int i = 0; i < 7; i++) { list.add("jack" + i); } return list; } public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // 加载上下文中的菜单 super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_item, menu); } public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.awe: //To do break; } return super.onContextItemSelected(item); } 4. public class MainActivity extends Activity { private ListView listview; private Button button; private ActionMode actionMode; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) this.findViewById(R.id.but1); button.setOnLongClickListener(new OnLongClickListener() { @SuppressLint("NewApi") @Override public boolean onLongClick(View v) { if (actionMode != null) { return false; } actionMode = startActionMode(actionCallback); v.setSelected(true); return true; } }); } Private ActionMode.Callback actionCallback = new ActionMode.Callback() { @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case R.id.awe: Toast.makeText(getApplicationContext(), "text", 1).show(); break; default: break; } return false; } @Override // 加载菜单 从xml中 public boolean onCreateActionMode(ActionMode mode, Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_item, menu); return true; } @Override public void onDestroyActionMode(ActionMode mode) { actionMode = null; } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { // TODO Auto-generated method stub return false; } }; }
转载于:https://www.cnblogs.com/tiny1990/p/3140092.html