1

今、私はAndroid 3.0(API 11)ECLIPSEで別のポップアッププロジェクトを実行しようとしています。しかし、エラーが発生しました。タイプPopupMenu.OnMenuItemClickListenerMainActivity.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;
     }
}
4

1 に答える 1

3

onPopupBtClick () で、独自の popupListener インターフェイスを次のように宣言します。menu.setOnMenuItemClickListener(popupListener );

次に、アクティビティの他の場所 (ただし onPopupBtClick() の外側) で、インターフェイスを実装します。

private PopupMenu.OnMenuItemClickListener popupListener = new PopupMenu.OnMenuItemClickListener() {
                  @Override
                  public boolean onMenuItemClick(MenuItem item) {
                     // etc., etc., 
                     ....
                  }
    }
于 2012-10-08T18:00:09.020 に答える