2012-09-12 85 views
1

現在我正在嘗試使用Android 3.0(API 11)ECLIPSE做另一個彈出式項目。 但我有錯誤。不能實例化類型的類型PopupMenu.OnMenuItemClickListener MainActivity.java無法實例化類型PopupMenu.OnMenuItemClickListener

&

的方法getMenuInflater()的PopupMenu不適用於參數(INT,對象)MainActivity.java)
任何幫助將不勝感激。謝謝。

package com.example.indicationsss; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.PopupMenu; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
    } 

    public void onPopupBtClick (View view) { 
      PopupMenu menu = new PopupMenu(this, view); 
     menu.getMenuInflater().inflate(R.menu.activity_main, menu.getMenu()); 
     menu.setOnMenuItemClickListener(**new PopupMenu.OnMenuItemClickListener**()); 
    } 

    public boolean onMenuItemClick(MenuItem item) { 
      Toast toast = Toast.makeText (MainActivity.this, 
      item.getTitle() + "was pressed", 
      Toast.LENGTH_SHORT); 
      toast.show(); 
      return true; 
    } 
} 
+0

任何人都知道有什麼問題? – HELPED

回答

3

在onPopupBtClick(),聲明自己的popupListener接口,就像這樣:menu.setOnMenuItemClickListener(popupListener);

,然後其他地方的活動(但onPopupBtClick()之外),實現接口:

private PopupMenu.OnMenuItemClickListener popupListener = new PopupMenu.OnMenuItemClickListener() { 
        @Override 
        public boolean onMenuItemClick(MenuItem item) { 
        // etc., etc., 
        .... 
        } 
    }