日韩性视频-久久久蜜桃-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) (转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 在线视频黄 | 欧美日韩欧美 | 高潮白浆女日韩av免费看 | 性xxxx欧美老肥妇牲乱 | 午夜色婷婷 | 久久黄色精品视频 | 深夜视频在线看 | 亚洲国产精品综合久久久 | 青草久久网 | 女人扒开腿让男人桶爽 | 人妻无码一区二区三区久久 | 色xxxxx| 亚洲一区二区在线播放 | 亚洲高潮 | 亚洲1234区 | 国产玖玖视频 | 打屁股视频网站 | 三浦惠理子aⅴ一二三区 | 色婷婷狠狠爱 | 北条麻妃一区二区三区四区五区 | 成人动漫在线观看 | 亚洲免费高清视频 | 插插射射 | sm久久捆绑调教精品一区 | 成年免费在线观看 | 欧美日韩成人精品 | 亚洲一区二区在线视频 | 999国产精品视频 | 色哟哟视频在线观看 | 免费av福利| 伊人网狼人 | 国产精品一区二区三区四区五区 | 天堂av2018 | 激情视频在线播放 | 亚洲国内自拍 | 国产男男gay体育生网站 | 激情小说在线 | 国产在线传媒 | 欧美老熟妇一区二区三区 | 国产天堂av | 亚洲精品无码久久久久久久 | 国产做受69 | 亚洲在线资源 | 蜜臀aⅴ国产精品久久久国产老师 | 国产成人免费av一区二区午夜 | 性欧美长视频 | 国产亚洲精品熟女国产成人 | 亚洲综合在 | 色悠悠在线视频 | 99久久久国产精品 | www.夜夜| 亚洲在线看 | 美日韩丰满少妇在线观看 | av香蕉网 | 冈本视频在线观看 | a无一区二区三区 | 国内三级视频 | www.av黄色 | 少妇厨房愉情理伦bd在线观看 | 古装做爰无遮挡三级视频 | 97人人人 | 国产a线 | 日韩欧美一区二区三区视频 | 综合伊人av| 亚洲一二三不卡 | 伊人网伊人网 | 99国产精品国产精品九九 | 午夜av网站 | 97精品人妻一区二区三区蜜桃 | 草免费视频| 看日本毛片 | 亚洲精品国产av | 日本美女一区 | 亚洲一区二区三区久久久成人动漫 | 久热这里只有 | 国产精品一 | 欧美精品在线视频 | 自拍天堂 | 自拍 亚洲 欧美 | 亚洲理伦| 第一页在线视频 | 麻豆av免费看 | 亚洲五月天综合 | 久草新视频 | 人妻精品一区二区三区 | 特黄特色免费视频 | 精品熟妇视频一区二区三区 | 亚洲在线| 深夜视频在线免费 | 久久99热久久99精品 | 少女国产免费观看 | 欧美亚洲色综久久精品国产 | caopor在线视频 | 欧美激情图片 | 成人黄色在线免费观看 | 成人动漫在线观看视频 | 人人妻人人玩人人澡人人爽 | 岛国久久久 | 国产主播啪啪 |