关于Activity无重写方法--菜单项onCreateOptionsMenu

来源:互联网 发布:java反射讲四有变公有 编辑:程序博客网 时间:2024/06/06 08:23

我使用的sdk是4.0版本,测试菜单项时发现无此方法,经查询google已删除菜单键,用onCreateContextMenu来完成模拟,菜单键的处理和上下文菜单的处理方法的格式几乎是一致的,实际操作中也是如此,不再赘述。具体示例如下:

public class MainActivity extends Activity {    public static final int RED_MENU_ID = Menu.FIRST;    public static final int GREEN_MENU_ID = Menu.FIRST+1;    public static final int BLUE_MENU_ID = Menu.FIRST+2;    private Button colorBtn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        colorBtn = (Button)findViewById(R.id.color_button);        registerForContextMenu(colorBtn);    }    @Override    public void onCreateContextMenu(ContextMenu menu, View v,            ContextMenuInfo menuInfo) {        // TODO Auto-generated method stub        menu.add(0, RED_MENU_ID, 0, R.string.color_red);        menu.add(0, GREEN_MENU_ID, 0, R.string.color_green);        menu.add(0, BLUE_MENU_ID, 0, R.string.color_blue);    }    @Override    public boolean onContextItemSelected(MenuItem item) {        // TODO Auto-generated method stub        super.onContextItemSelected(item);        switch(item.getItemId()){        case RED_MENU_ID:            colorBtn.setBackgroundColor(Color.RED);            colorBtn.setText(R.string.color_red);            return true;        case GREEN_MENU_ID:            colorBtn.setBackgroundColor(Color.GREEN);            colorBtn.setText(R.string.color_green);            return true;        case BLUE_MENU_ID:            colorBtn.setBackgroundColor(Color.BLUE);            colorBtn.setText(R.string.color_blue);            return true;        }        return true;    }}   

测试长按设定按钮,显示出选项,这里写图片描述

0 0