【问题标题】:Cannot instantiate the type PopupMenu.OnMenuItemClickListener无法实例化类型 Popup Menu.OnMenuItemClick 侦听器
【发布时间】:2012-09-12 21:25:40
【问题描述】:

现在我正在尝试使用 Android 3.0 (API 11) ECLIPSE 做另一个弹出项目。 但我有错误。无法实例化类型 PopupMenu.OnMenuItemClickListener MainActivity.java

&

PopupMenu 类型中的 getMenuInflater() 方法不适用于参数 (int, Object) 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;
     }
}

【问题讨论】:

  • 有谁知道问题出在哪里?

标签: java android eclipse sdk android-activity


【解决方案1】:

在onPopupBtClick()中,声明自己的popupListener接口,如下:menu.setOnMenuItemClickListener(popupListener );

然后在活动的其他地方(但在 onPopupBtClick() 之外),实现接口:

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

【讨论】:

    猜你喜欢
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2021-11-04
    • 2013-12-18
    • 2013-07-25
    • 2019-01-09
    • 2018-05-13
    相关资源
    最近更新 更多