您的位置:首页 > 移动开发 > Android开发

Android菜单的几种方法

2015-11-05 00:00 671 查看
摘要: 根据自己的理解和学习慕课网基础敲得。从网易云笔记倒过来的

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;

&nbs
3ff0
p; }

// 点击监听事件 将每个菜单栏绑定

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
<menu xmlns:android="
http://schemas.android.com/apk/res/android"

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
<menu xmlns:android="
http://schemas.android.com/apk/res/android"

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());

3ff0
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;

}









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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息