メニュー項目をクリックするとポップアップメニューを表示しようとしています。しかし、私は "MenuPopupHelperアンカーなしで使用することはできません"というエラーが表示されます。私は何ができますか。私は何かが欠けていることを知っています。私はこのエラーを解決するためにインターネットで検索したが何も助けた。アンドロイドのメニュー項目をクリックしたときにポップアップメニューを表示するには
私menu_main.xmlファイル
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="screen1"
android:id="@+id/scr1"/>
<item android:title="screen2"
android:id="@+id/scr2"/>
<item android:title="screen3"
android:id="@+id/scr3"
/>
<item android:title="change sound"
android:id="@+id/changesound"
/>
</menu>
popup_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:title="female"
android:id="@+id/voice_female"
/>
<item android:title="male"
android:id="@+id/voice_male"
/>
</menu>
そして、あなたはサポートポップアップメニューを使用している場合、これが私の活動のコード
public class Main3Activity extends AppCompatActivity {
Button btn_default;
String username;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
btn_default=(Button)findViewById(R.id.setdefault);
//set button click
btn_default.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.scr1:
break;
case R.id.scr2:
break;
case R.id.scr3:
break;
case R.id.changesound:
showpopup();
break;
}
return super.onOptionsItemSelected(item);
}
public void showpopup()
{
View v=findViewById(R.id.changesound);
//Creating the instance of PopupMenu
PopupMenu popup = new PopupMenu(Main3Activity.this, v);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.popup_menu,
popup.getMenu());
//registering popup with OnMenuItemClickListener
popup.setOnMenuItemClickListener(new
PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(Main3Activity.this, "clicked",
Toast.LENGTH_SHORT).show();
return true;
}
});
popup.show();//showing popup menu
}
}
このリンクはあなたがhttps://stackoverflow.com/questions/14729592/show-popup-menu-on-actionbar-item-click –
多分 "findViewById(R.id.changesound)は" ヌル –
Iを返す役立つことあなたのクラスで呼び出された 'setContentView'メソッドが見つかりませんでした。 –