オプションメニュー項目を使用してレイアウトを膨らませようとしています。私が使用しようとしたコードは次のとおりです
public class Test01 extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
...
setContentView(R.Layout.main);
...
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
theMenu=menu;
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.main_optmenu, theMenu);
return(super.onCreateOptionsMenu(menu));
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case R.id.item1:
LayoutInflater li=(LayoutInflater)getContext().getSystemService(LAYOUT_INFLATER_SERVICE);
li.inflate(R.layout.mylayout,this,true);
case R.id.item2:
...
default:
....
}
}
}
2つのエラーが発生します-「getContext()は未定義です」ので、検索した後、getApplicationContext()に変更すると、LAYOUT_INFLATER_SERVICEを取得できます。
ただし、2行目では、ViewGroupパラメーターは受け入れられません。エラーメッセージは、「LayoutInflater型のメソッドinflate(int、ViewGroup、boolean)は、引数(int、test01、boolean)には適用できません」です。
パラメータに正しい値を指定していないようです。LayoutInflaterをsetContentViewに置き換えることができるため、メニュー自体は正常に機能します。
私は本当にあなたの助けに感謝します、「ありがとう