Android应用中使用Popupmenu
最终效果:


页面布局:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 android:background="#FFFFFF" 6 android:orientation="vertical" > 7 8 <RelativeLayout 9 android:layout_width="fill_parent" 10 android:layout_height="45dp" 11 android:background="#303538" > 12 <Button 13 android:id="@+id/button_showPopup" 14 android:layout_width="wrap_content" 15 android:layout_height="fill_parent" 16 android:layout_alignParentRight="true" 17 android:background="#303538" 18 android:text="┇" 19 android:textColor="#FFFFFF" 20 android:textSize="20sp" > 21 </Button> 22 </RelativeLayout> 23 24 </LinearLayout>
Popupmenu布局(文件在menu目录下):
1 <?xml version="1.0" encoding="utf-8"?> 2 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 3 4 <item 5 android:id="@+id/about" 6 android:orderInCategory="100" 7 android:showAsAction="never" 8 android:title="关于"> 9 </item> 10 <item 11 android:id="@+id/exit" 12 android:orderInCategory="100" 13 android:showAsAction="never" 14 android:title="退出"> 15 </item> 16 17 </menu>
后台代码:
1 package com.wangzhen.popup;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.view.MenuItem;
6 import android.view.View;
7 import android.view.View.OnClickListener;
8 import android.view.Window;
9 import android.widget.Button;
10 import android.widget.PopupMenu;
11 import android.widget.Toast;
12
13 public class Main extends Activity implements OnClickListener,
14 android.widget.PopupMenu.OnMenuItemClickListener {
15 /** Called when the activity is first created. */
16 private Button button_showPopup;
17
18 @Override
19 public void onCreate(Bundle savedInstanceState) {
20 super.onCreate(savedInstanceState);
21 requestWindowFeature(Window.FEATURE_NO_TITLE);
22 setContentView(R.layout.main);
23 initViews();
24 }
25
26 // 初始化控件
27 private void initViews() {
28 // TODO Auto-generated method stub
29 button_showPopup = (Button) findViewById(R.id.button_showPopup);
30 button_showPopup.setOnClickListener(this);
31 }
32
33 public void onClick(View arg0) {
34 // TODO Auto-generated method stub
35 switch (arg0.getId()) {
36 case R.id.button_showPopup:
37 PopupMenu pop = new PopupMenu(this, arg0);
38 pop.getMenuInflater().inflate(R.menu.menu, pop.getMenu());
39 pop.show();
40 pop.setOnMenuItemClickListener(this);
41 break;
42 }
43 }
44
45 public boolean onMenuItemClick(MenuItem arg0) {
46 // TODO Auto-generated method stub
47 switch (arg0.getItemId()) {
48 case R.id.about:
49 Toast.makeText(this, "关于", 1000).show();
50 break;
51 case R.id.exit:
52 finish();
53 break;
54 }
55 return false;
56 }
57 }


浙公网安备 33010602011771号