2014-06-12 19 views
0

我有一個問題,在Android上創建一個彈出菜單。實際上,我想動態加載彈出窗口,但是當我執行應用程序時,菜單不在屏幕上,並且不會停留在按鈕上...爲什麼?Android彈出式菜單並非固定在按鈕上操作欄

這是理解的屏幕:

enter image description here

enter image description here

這是我用來創建我的彈出菜單的總結代碼:

public class MainActivity extends FragmentActivity 
{ 
    PopupMenu select_job; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     //... 
     View view = inflater.inflate(R.layout.my_custom_layout ,null); 
     select_job = new PopupMenu(this, view); 
     select_job.getMenu().add("ProvaLavoro"); 
    } 

    public boolean onOptionsItemSelected(MenuItem item) 
    { 
     switch(item.getItemId()) 
     { 
      case R.id.popupmenu: 
       select_job.show(); 
       break; 
     } 
    } 
} 

這是my_custom_layout.xml以膨脹白皙:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:id="@+id/txtNameJobND" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="0dp" 
     android:textColor="#111" 
     android:textStyle="bold"/> 

</RelativeLayout> 

我在做什麼錯?

謝謝!

回答

1
  select_job = new PopupMenu(this, view); 

這裏,視圖是彈出式菜單的錨點。您應該傳遞MenuItem(R.id.popupmenu)作爲錨點。我自己沒有做過(把一個PopupMenu錨定到一個Actionbar項目上),但我認爲這應該是它背後的想法。

從Android文件:

公衆的PopupMenu(上下文的背景下,查看錨)

在API級別11

構造一個新的彈出菜單。

參數

上下文:PopupMenu的上下文。

錨點:此彈出窗口的錨點視圖。如果有空間,彈出窗口將顯示在錨點的下方,如果沒有,則彈出窗口會顯示在其上方。

+0

謝謝!但我還有一個問題:如何在視圖中傳遞菜單項? PopupMenu只接受一個視圖(R.id.popupmenu不是一個視圖)... – user3449772

+0

我在這裏找到答案,我想:) [link](http://stackoverflow.com/questions/14729592/show-彈出菜單上的操作欄上的項目單擊) – Lev

+0

謝謝!我會稍後再試!我現在不在家:) – user3449772