2012-09-12 52 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., 
        .... 
        } 
    }