原因是滿多人都不知道長按項目會出現選單.
以下是簡單的 popupmenu example.
兩個按鈕, 一個會啟動另外一個 activity, 另外一個則是簡單的 button, 點擊後會跳出 popupmenu.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="24dp"
android:orientation="vertical">
<Button
android:id="@+id/btn_example"
android:text="@string/btn_example"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="16dp"/>
<Button
android:id="@+id/btn"
android:text="@string/btn_popupmenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="16dp"/>
</LinearLayout>
而在 MainAcivity 裡, Popupmenu 的實作也很簡單.
下面是 button 的 OnClickListener, 透過點擊此 button, 就會產生一個 PopupMenu 出來.
final View.OnClickListener mPopupMenuClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popmenu = new PopupMenu(MainActivity.this, v);
popmenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case 1:
Toast.makeText(MainActivity.this, R.string.popupmenu_menu_1, Toast.LENGTH_SHORT).show();
return true;
case 2:
Toast.makeText(MainActivity.this, R.string.popupmenu_menu_2, Toast.LENGTH_SHORT).show();
return true;
case 3:
Toast.makeText(MainActivity.this, R.string.popupmenu_menu_3, Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
Menu menu = popmenu.getMenu();
menu.add(0, 1, 0, R.string.popupmenu_menu_1);
menu.add(0, 2, 0, R.string.popupmenu_menu_2);
menu.add(0, 3, 0, R.string.popupmenu_menu_3);
popmenu.show();
}
};
結果就會如下圖.

不過實際上我的應用通常是更常使用在 ListView 的部份.
這邊就不把程式碼貼出來, 有興趣可以下載原始碼觀看.
結果圖如下:

原始碼下載: PopmenuExample.zip
沒有留言:
張貼留言