原因是滿多人都不知道長按項目會出現選單.
以下是簡單的 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
沒有留言:
張貼留言