日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu) (转载)

發布時間:2025/3/21 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu) (转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

覆蓋onPrepareOptionsMenu(Menu menu)這個方法非常的好用,我們可以定義boolean值來進行判斷,如果滿足條件就可以把菜單欄動態設置成某些狀態,比如是否可見,text值等等。?

比如我設定一個布爾值addingNew=flase,然后在其他方法體中對addingNew進行重新賦值。在覆蓋onPrepareOptionsMenu(Menu menu)中,我們對addingNew進行判斷,如果它的值是ture,我們ID為REMOVE_TODO的菜單項就設置為text=“cancel”。否則,我們ID為REMOVE_TODO的菜單項就設置為text=“remove”。?

總之,就是可以進行一些判斷,然后動態設置我們的菜單項狀態。?



另外一點,我們應該積累經驗,學會很好的運用boolean值,這在很多地方都很有用。?



下面是我的程序,從中可以總結出很多經驗。?

public class ToDolist extends Activity {?
??? /** Called when the activity is first created. */?
????
??? static final private int ADD_NEW_TODO=Menu.FIRST;?
??? static final private int REMOVE_TODO=Menu.FIRST+1;?
??? private boolean addingNew=false;//設置這個值來進行控制?
??? private ListView myListView;?
??? private EditText myEditText;?
??? private ArrayList<String> todoItems;?
??? private ArrayAdapter<String> aa;?
????
??? @Override?
??? public void onCreate(Bundle savedInstanceState) {?
??????? super.onCreate(savedInstanceState);?
??????? setContentView(R.layout.main);??
????????
??????? myListView=(ListView)findViewById(R.id.myListView);?
??????? myEditText=(EditText)findViewById(R.id.myEditText);?
??????? todoItems=new ArrayList<String>();?
????????
??????? int resID=R.layout.todolist;?
??????? aa=new ArrayAdapter<String>(this, resID, todoItems);?
??????? myListView.setAdapter(aa);?
????????
??????? myEditText.setOnKeyListener(new OnKeyListener(){?

?? @Override?
?? public boolean onKey(View v, int keyCode, KeyEvent event) {?
??? // TODO Auto-generated method stub?
??? if(event.getAction()==KeyEvent.ACTION_DOWN){?
???? if(keyCode==KeyEvent.KEYCODE_DPAD_CENTER){?
????? todoItems.add(0, myEditText.getText().toString());?
????? aa.notifyDataSetChanged();?
????? myEditText.setText("");?
????? cancelAdd();//初始設定REMOVE_TODO菜單項不可見,myEditText不可見?
????? return true;?
???? }?
??? }?
??? return false;?
?? }});?
??????? registerForContextMenu(myListView);//設置myListView為一個ContextMenu的接收者?
???
??? }?
????
??? public boolean onCreateOptionsMenu(Menu menu){?
???? super.onCreateOptionsMenu(menu);?
???? MenuItem itemAdd=menu.add(0, ADD_NEW_TODO, Menu.NONE, R.string.add_new);?
???? MenuItem itemRem=menu.add(0, REMOVE_TODO, Menu.NONE, R.string.remove);?
?????
???? itemAdd.setIcon(R.drawable.add_new_item);?
???? itemRem.setIcon(R.drawable.remove_item);?
?????
???? itemAdd.setShortcut('0', 'a');?
???? itemRem.setShortcut('1', 'r');?
?????
? return true;?
?????
??? }?
????
????
??? public void onCreateContextMenu(ContextMenu menu,View v, ContextMenu.ContextMenuInfo menuInfo){?
???? super.onCreateContextMenu(menu, v, menuInfo);?
?????
???? menu.setHeaderTitle("Selected To Do Item");?
???? menu.add(0, REMOVE_TODO, Menu.NONE, R.string.remove);?
?????
??? }//創建了ContextMenu?
????
??? @Override?
??? public boolean onPrepareOptionsMenu(Menu menu){?
?????
???? super.onPrepareOptionsMenu(menu);?
???? int idx=myListView.getSelectedItemPosition();?
?????
???? //通過addingNew的判斷來確定REMOVE_TODO的text的值?
???? String removeTitle=getString(addingNew? R.string.cancel:R.string.remove);?
?????
???? MenuItem removeItem=menu.findItem(REMOVE_TODO);?
???? removeItem.setTitle(removeTitle);?
?????
???? //只有當在添加的狀態下(addingNew=true)或者ListView被selected的情況下REMOVE_TODO菜單項才可見?
???? removeItem.setVisible(addingNew||idx>-1);?
?????
? return true;?
?????
??? }?
????
??? @Override?
??? public boolean onOptionsItemSelected(MenuItem item){?
???? super.onOptionsItemSelected(item);?
?????
???? int index=myListView.getSelectedItemPosition();?
?????
???? switch(item.getItemId()){?
???? case(REMOVE_TODO):{?
????? //此時的REMOVE_TODO菜單的text可能有兩種狀態:1.cancel 2.remove?
????? if(addingNew){?
?????? //當addingNew=true的時候,REMOVE_TODO菜單的text=“cancel”,這時候我們就執行相應的取消操作?
?????? cancelAdd();?
????? }else{?
?????? removeItem(index);?
?????? //當addingNew=false的時候,REMOVE_TODO菜單的text=“remov”,這時候我們就執行相應的刪除操作?
????? }?
????? return true;?
???? }?
???? case(ADD_NEW_TODO):{?
????? addNewItem();?
????? return true;?
???? }?
???? }?
? return false;?????
??? }?
????
??? @Override?
??? public boolean onContextItemSelected(MenuItem item){?
???? super.onContextItemSelected(item);?
?????
???? switch (item.getItemId()){?
???? case(REMOVE_TODO):{?
????? AdapterView.AdapterContextMenuInfo menuInfo;?
????? menuInfo=(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();?
????? int index=menuInfo.position;?
??????
????? removeItem(index);?
????? return true;?
???? }?
???? }?
? return false;?
?????
??? }?
????
??? //在下面3個方法總執行相應的工作,并且對addingNew進行控制?
private void addNewItem() {?
? // TODO Auto-generated method stub]?
? addingNew=true;?
? myEditText.setVisibility(View.VISIBLE);?
? myEditText.requestFocus();?
??
}?

private void removeItem(int _index) {?
? // TODO Auto-generated method stub?
? todoItems.remove(_index);?
? aa.notifyDataSetChanged();?
??
}?

private void cancelAdd() {?
? // TODO Auto-generated method stub?
? addingNew=false;?
? myEditText.setVisibility(View.GONE);?
}?
????
}?

轉載于:https://www.cnblogs.com/joey-home/archive/2012/02/27/2370160.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu) (转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www久久久久久| 在线观看av网页 | 成人激情四射网 | 久久艹国产| 日韩在线小视频 | 日本成人精品视频 | 女女av在线 | 国产精品18久久久 | 黄色高清网站 | 三级国产网站 | 亚洲第一黄网 | 影音先锋黄色资源 | 亚洲色图国产视频 | 日韩视频 中文字幕 | 日本免费在线一区 | 亚洲综合站 | 欧美999| 精品成人久久久 | 日本在线视频不卡 | 亚洲性生活视频 | 能免费看18视频网站 | 免费国产黄色网址 | xx69欧美| 久久久久久亚洲中文字幕无码 | 久久免费高清视频 | 91香蕉一区二区三区在线观看 | 精品动漫一区二区三区 | 久久精品8 | 福利视频免费观看 | 日韩一二三四五区 | 狠狠撸在线视频 | 大乳村妇的性需求 | 亚洲一区二区三区黄色 | 一区二区天堂 | 久久国产美女视频 | www视频在线观看免费 | 婷婷av在线| 亚洲不卡av一区二区 | 亚洲第9页 | 亚洲成人av网址 | 在线一二三区 | 亚洲 高清 成人 动漫 | 久久精品黄aa片一区二区三区 | 青草视频在线 | 欧美激情在线狂野欧美精品 | 日韩视频一区在线观看 | 红桃视频成人 | 高清av网址 | 日韩免费视频 | 国产伦精品一区二区三区千人斩 | www麻豆视频| 国产色99 | 一区二区三区视频网站 | 男女视频在线 | 4虎tv| 加勒比成人在线 | av不卡在线播放 | 亚洲福利视频一区二区三区 | 亚洲欧洲一区二区 | 久久99热久久99精品 | 中文字幕一区二区三区久久久 | 久章草在线观看 | 乱熟女高潮一区二区在线 | 丁香婷婷社区 | 性欧美长视频 | 四虎在线观看视频 | 国产夜夜嗨| www.日韩视频 | 天天射天天草 | 欧美另类第一页 | 草逼网站 | 中文字幕有码av | 国产尤物视频 | 亚洲Av无码成人精品区伊人 | av777777| 日韩videos| 精品一区李梓熙捆绑 | 97人人澡人人爽人人模亚洲 | 91视频区| 一级片免费视频 | 日本天堂网在线观看 | 日本在线不卡一区二区三区 | xxx性欧美 | 国产成人精品一区二区三区在线 | 国产一区二区三区视频免费在线观看 | 黄色污污视频软件 | 免费看又黄又无码的网站 | 香蕉a| 99一级片 | 波多野结衣在线观看一区二区 | 视频在线日韩 | 国产第一草草影院 | 毛片在线免费观看视频 | 欧美夜夜夜 | 亚洲天堂精品在线 | av小说天堂网 | 国产美女永久无遮挡 | 日本一区二区免费在线 | 久久久久久久精 |