1b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinpackage com.google.android.apps.common.testing.ui.testapp; 2b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 3b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.app.Activity; 4b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.os.Build; 5b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.os.Bundle; 6b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.ContextMenu; 7b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.ContextMenu.ContextMenuInfo; 8b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.Menu; 9b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.MenuInflater; 10b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.MenuItem; 11b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.View; 12b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.widget.PopupMenu; 13b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.widget.PopupMenu.OnMenuItemClickListener; 14b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.widget.TextView; 15b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 16b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin/** 17b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin * Shows MenuActivity with Options menu, Context menu and Popup menu. Click on a menu item changes 18b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin * text of R.id.textMenuResult. 19b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin */ 20b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinpublic class MenuActivity extends Activity { 21b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 22b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin @Override 23b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin protected void onCreate(Bundle savedInstanceState) { 24b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin super.onCreate(savedInstanceState); 25b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin setContentView(R.layout.menu_activity); 26b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin registerForContextMenu(findViewById(R.id.textContextMenu)); 27b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 28b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 29b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin @Override 30b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 31b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin super.onCreateContextMenu(menu, v, menuInfo); 32b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin MenuInflater inflater = getMenuInflater(); 33b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin inflater.inflate(R.menu.contextmenu, menu); 34b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 35b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 36b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin @Override 37b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin public boolean onOptionsItemSelected(MenuItem item) { 38b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin TextView text = (TextView) findViewById(R.id.textMenuResult); 39b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin text.setText(item.getTitle()); 40b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin return true; 41b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 42b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 43b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin @Override 44b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin public boolean onCreateOptionsMenu(Menu menu) { 45b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin MenuInflater inflater = getMenuInflater(); 46b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin inflater.inflate(R.menu.optionsmenu, menu); 47b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin return true; 48b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 49b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 50b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin @Override 51b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin public boolean onContextItemSelected(MenuItem item) { 52b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin TextView text = (TextView) findViewById(R.id.textMenuResult); 53b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin text.setText(item.getTitle()); 54b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin return true; 55b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 56b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 57b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin public void showPopup(View view) { 58b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { 59b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin TextView text = (TextView) findViewById(R.id.textMenuResult); 60b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin text.setText("Not supported in API " + Build.VERSION.SDK_INT); 61b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } else { 62b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin PopupMenu popup = new PopupMenu(this, view); 63b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin popup.setOnMenuItemClickListener(new PopupMenuListener()); 64b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin popup.getMenuInflater().inflate(R.menu.popupmenu, popup.getMenu()); 65b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin popup.show(); 66b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 67b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 68b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 69b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin @Override 70b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin public boolean onMenuItemSelected(int featureId, MenuItem item) { 71b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin return super.onMenuItemSelected(featureId, item); 72b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 73b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin 74b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin private class PopupMenuListener implements OnMenuItemClickListener { 75b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin @Override 76b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin public boolean onMenuItemClick(MenuItem item) { 77b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin TextView text = (TextView) findViewById(R.id.textMenuResult); 78b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin text.setText(item.getTitle()); 79b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin return true; 80b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 81b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin } 82b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin} 83