最终效果:
页面布局:
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 }