6.菜单分类()

    普通创建菜单的两种方法
    1.动态的添加菜单栏,然后创建菜单栏的点击事件   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public boolean onCreateOptionsMenu(Menu menu) {
     
    // 动态添加菜单
        MenuItem item =menu.add(1, 100, 1, "菜单一");
        item.setTitle("aaa");
        item.setIcon(R.drawable.ic_launcher); //api>=11 不显示图标
         
        menu.add(1, 101, 1, "菜单二");
        menu.add(1, 102, 1, "菜单三");
        menu.add(1, 103, 1, "菜单四");
 
        return true;
    }
 
    // 点击监听事件 将每个菜单栏绑定
    public boolean onOptionsItemSelected(MenuItem item) {
     
        switch (item.getItemId()) {
 
        case 100:
            //跳转到一个页面
            Intent intent = new Intent(MainActivity.this,SecondActivity.class);
            item.setIntent(intent);
            break;
 
         
        case 101:
            Toast.makeText(MainActivity.this, "点击了菜单二", Toast.LENGTH_LONG)
                    .show();
            break;
        case 102:
            Toast.makeText(MainActivity.this, "点击了菜单三", Toast.LENGTH_LONG)
                    .show();
            break;
        case 103:
            Toast.makeText(MainActivity.this, "点击了菜单四", Toast.LENGTH_LONG)
                    .show();
            break;
 
        }
        return super.onOptionsItemSelected(item);
    }

    2.将菜单栏写在menu文件夹中然后 调用
        main 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    xmlns:tools=" http://schemas.android.com/tools"
    tools:context="com.example.mk_opetionmenu.MainActivity" >
 
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
    <item
        android:id="@+id/action_menu_item1"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="菜单1"/>
    <item
        android:id="@+id/action_menu_item2"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="菜单2"/>
 
</menu>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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);
     
 
        return true;
    }
 
    // 点击监听事件 将每个菜单栏绑定
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
         case R.id.action_menu_item1:
         
            //跳转到一个页面
            Intent intent = new Intent(MainActivity.this,SecondActivity.class);
            item.setIntent(intent);
            break;
 
         case R.id.action_menu_item2:
         
            Toast.makeText(MainActivity.this, "点击了菜单四", Toast.LENGTH_LONG)
                    .show();
            break;
 
        }
        return super.onOptionsItemSelected(item);
    }
上下文的菜单栏菜单栏(长按弹出的菜单栏)
 1.创建listview

 2.确定上下文菜单(注册菜单,添加菜单内容(两种方法))

 3.添加点击相应事件事件
    加载xml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    xmlns:tools=" http://schemas.android.com/tools"
    tools:context="com.example.mk_contextmenu.MainActivity" >
 
    <item
        android:id="@+id/action_item1"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="复制"/>
    <item
        android:id="@+id/action_item2"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="粘贴"/>
    <item
        android:id="@+id/action_item3"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="剪贴"/>
    <item
        android:id="@+id/action_item4"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="重命名"/>
 
</menu>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        showListView();
    }
 
    /**
     * 设置listview的显示内容
     */
 
    private void showListView() {
        ListView listview = (ListView) findViewById(R.id.showListView);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, getData());
        listview.setAdapter(adapter);
        this.registerForContextMenu(listview);// 注册上下文菜单
 
    }
 
    /**
     * 设置具体的菜单项
     */
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        // 设置menu显示的内容
        menu.setHeaderTitle("文件操作");
        menu.setHeaderIcon(R.drawable.ic_launcher);
         
        MenuInflater inflater = getMenuInflater(); // 把menu中的菜单main添加到菜单栏
        inflater.inflate(R.menu.main, menu);
 
    }
 
    /**
     * 菜单的注册事件
     */
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
 
        switch (item.getItemId()) {
     
        case R.id.action_item1:
            Toast.makeText(this, "复制中", Toast.LENGTH_LONG).show();
            break;
         
        case R.id.action_item2:
            Toast.makeText(this, "粘贴中", Toast.LENGTH_LONG).show();
            break;
     
        case R.id.action_item3:
            Toast.makeText(this, "剪贴中", Toast.LENGTH_LONG).show();
            break;
     
        case R.id.action_item4:
            Toast.makeText(this, "重命名中", Toast.LENGTH_LONG).show();
            break;
        }
 
        return super.onContextItemSelected(item);
    }
 
    /**
     * 构造listview显示的数据
     * 
     * @return
     */
 
    private ArrayList<String> getData() {
        ArrayList<String> list = new ArrayList<String>();
        for (int i = 0; i < 5; i++) {
            list.add("文件" + (i + 1));
        }
        return list;
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
         
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 动态的添加


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    showListView();
}
 
/**
 * 设置listview的显示内容
 */
 
private void showListView() {
    ListView listview = (ListView) findViewById(R.id.showListView);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, getData());
    listview.setAdapter(adapter);
    this.registerForContextMenu(listview);// 注册上下文菜单
 
}
 
/**
 * 设置具体的菜单项
 */
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    // TODO Auto-generated method stub
    super.onCreateContextMenu(menu, v, menuInfo);
    // 设置menu显示的内容
    menu.setHeaderTitle("文件操作");
    menu.setHeaderIcon(R.drawable.ic_launcher);
     menu.add(1, 1, 1, "复制"); // 代码动态添加
     menu.add(1, 2, 1, "粘贴");
        menu.add(1, 3, 1, "剪贴");
     menu.add(1, 4, 1, "重命名");
 
}
 
/**
 * 菜单的注册事件
 */
@Override
public boolean onContextItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
 
    switch (item.getItemId()) {
     case 1:
        Toast.makeText(this, "复制中", Toast.LENGTH_LONG).show();
        break;
     case 2:
        Toast.makeText(this, "粘贴中", Toast.LENGTH_LONG).show();
        break;
    case 3:
        Toast.makeText(this, "剪贴中", Toast.LENGTH_LONG).show();
        break;
     case 4:
        Toast.makeText(this, "重命名中", Toast.LENGTH_LONG).show();
        break;
    }
 
    return super.onContextItemSelected(item);
}
 
/**
 * 构造listview显示的数据
 * 
 * @return
 */
 
private ArrayList<String> getData() {
    ArrayList<String> list = new ArrayList<String>();
    for (int i = 0; i < 5; i++) {
        list.add("文件" + (i + 1));
    }
    return list;
}
 
@Override
public boolean onCreateOptionsMenu(Menu menu) {
     Inflate the menu; this adds items to the action bar if it is present.
    return true;
}

Android菜单的几种方法

Android菜单的几种方法

Android菜单的几种方法

百度云demo地址:http://pan.baidu.com/s/1gdJeum3



转载于:https://my.oschina.net/TAOH/blog/526055

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-17
  • 2021-04-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-08
  • 2022-12-23
  • 2021-08-22
  • 2022-12-23
  • 2022-12-23
  • 2021-09-17
相关资源
相似解决方案