首页 > 代码库 > Android应用中使用Popupmenu

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         <Button13             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     <item11         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     @Override19     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 stub29         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 stub35         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 stub47         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 }