Reputation: 11
Now i am trying to do another pop up project with Android 3.0 (API 11) ECLIPSE. But i got errors. Cannot instantiate the type PopupMenu.OnMenuItemClickListener MainActivity.java
&
The method getMenuInflater() in the type PopupMenu is not applicable for the arguments (int, Object) MainActivity.java)
Any help will be appreciated. Thanks.
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;
}
}
Upvotes: 1
Views: 2296
Reputation: 5659
In onPopupBtClick (), declare your own popupListener interface like so: menu.setOnMenuItemClickListener(popupListener );
and then elsewhere in the activity (but outside of onPopupBtClick() ), implement the interface:
private PopupMenu.OnMenuItemClickListener popupListener = new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
// etc., etc.,
....
}
}
Upvotes: 3