編輯:關於android開發
menu 分類:
選項菜單(OptionsMenu) 上下文菜單(ContextMenu) 子菜單(SubMenu)一、方法介紹:
public booleanonCreateOptionsMenu(Menu menu):使用此方法調用OptionsMenu 。
public booleanonOptionsItemSelected(MenuItem item):選中菜單項後發生的動作。
public voidonOptionsMenuClosed(Menu menu):菜單關閉後發生的動作。
public booleanonPrepareOptionsMenu(Menu menu):選項菜單顯示之前onPrepareOptionsMenu方法會被調用,你可以用此方法來根據打當時的情況調整菜單。
public booleanonMenuOpened(int featureId, Menu menu):單打開後發生的動作。
二、默認樣式
默認樣式是在屏幕底部彈出一個菜單,這個菜單我們就叫他選項菜單OptionsMenu,一般情況下,選項菜單最多顯示2排每排3個菜單項,這些菜單項有文字有圖標,也被稱作Icon Menus,如果多於6項,從第六項開始會被隱藏,在第六項會出現一個More裡,點擊More才出現第六項以及以後的菜單項,這些菜單項也被稱作Expanded Menus。下面介紹。
1.重載onCreateOptionsMenu(Menu menu)方法
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.main, menu);
menu.add(0,1,1,設置).setIcon(R.drawable.setting);
menu.add(0,3,3,設置).setIcon(R.drawable.setting);
menu.add(0,2,2,下載).setIcon(R.drawable.download);
}
4.2上的optionsMenu是放到actionbar上面了,必須要在xml文件中設置showAsAction=always活著showAsAction=ifRoom才能在actionbar上顯示。只有在actionBar上顯示的菜單,才會有圖標。要在代碼中設置的話,menu.findItem(id).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
// TODO Auto-generated method stub
if (item.getGroupId() == 0 &&item.getItemId() == 1)
{
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
else
{
Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
}
return super.onOptionsItemSelected(item);
}
1、重載Activity的onCreateContextMenu()方法,調用Menu的add方法添加菜單項MenuItem
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
menu.add(0, 1, 0, 紅色背景);
menu.add(0, 2, 0, 綠色背景);
menu.add(1, 3, 0, 白色背景);
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
}
2、重載onContextItemSelected()方法,響應菜單單擊事件
@Override
public boolean onContextItemSelected(MenuItem item)
{
// TODO Auto-generated method stub
switch(item.getItemId()) {
case 1:
myText.setBackgroundColor(Color.RED);
break;
case 2:
myText.setBackgroundColor(Color.GREEN);
break;
case 3:
myText.setBackgroundColor(Color.WHITE);
break;
}
return true;
}
3、重載registerForContextMenu()方法,為視圖注冊上下文菜單
private TextView myText;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myText = (TextView)findViewById(R.id.mytext);
registerForContextMenu(myText);
}
子菜單(SubMenu)創建子菜單的方法
1、重載Activity的onCreateOptionsMenu()方法,調用Menu的addSubMenu()方法添加子菜單項
2、調用SubMenu的add()飯飯,添加子菜單項
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
SubMenu subMenu = menu.addSubMenu(0, 4, 4, 登錄/注冊);
subMenu.add(1, 1, 1, 登錄);
subMenu.add(1, 2, 2, 注冊);
return true;
}
3、重載onOptionsItemSelected(MenuItem item)方法為捕捉菜單項事件
這個方法有一個MenuItem參數,可以使用其getTitle和getItemId方法來判斷單擊的是哪個菜單項
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if(item.getTitle().equals(登錄))
{
Log.e(action:,點擊了 注冊/登錄);
}
return super.onOptionsItemSelected(item);
}
public void showPopuMenu(View v)
{
PopupMenu popup = new PopupMenu(MainActivity.this, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.popup, popup.getMenu());
popup.show();
}
我的android學習經歷7,android學習經歷7
我的android學習經歷7,android學習經歷7android簽名後報錯的問題 Duplicate id @+id/imageView, already defin
SwipeRefreshLayout + RecyclerView 實現 上拉刷新 和 下拉刷新,swiperefreshlayout
SwipeRefreshLayout + RecyclerView 實現 上拉刷新 和 下拉刷新,swiperefreshlayout下拉刷新和上拉刷新都用SwipeRe
FFmpeg使用手冊 - FFmpeg 的常用命令
FFmpeg使用手冊 - FFmpeg 的常用命令ffmpeg在做音視頻編解碼時非常方便,所以很多場景下轉碼使用的是ffmpeg,銅鼓通過ffmpeg –help命令操作
【Android性能工具】騰訊開源工具GT(隨身調),androidgt
【Android性能工具】騰訊開源工具GT(隨身調),androidgt做App測試時監測使用期間的cpu,內存,流量,電量等指標時,發現的企鵝很好用的工具。 備份至此,