Android 无法从OnOptions ItemSelected中使用LayoutInflater
我试图通过一个选项菜单项膨胀布局。 我尝试使用的代码如下Android 无法从OnOptions ItemSelected中使用LayoutInflater,android,android-layout,options-menu,Android,Android Layout,Options Menu,我试图通过一个选项菜单项膨胀布局。 我尝试使用的代码如下 public class Test01 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... setContentView(R.Layout.main);
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\u INFLATER\u服务
但在第二行中,不接受ViewGroup参数。。
错误消息是
LayoutFlater类型中的方法充气(int、ViewGroup、boolean)不适用于参数(int、test01、boolean)
似乎我没有为参数提供正确的值,
菜单本身工作正常,因为我可以用setContentView替换LayoutFlater
我非常感谢你的帮助,
“谢谢更换
li.充气(R.layout.mylayout,this,true);
与
替换
li.充气(R.layout.mylayout,this,true);
与
请在程序中使用base.oncreate(savedInstanceState)代替super.oncreate(savedInstanceState),并且您需要在方法中定义getcontext()。请在程序中使用base.oncreate(savedInstanceState)代替super.oncreate(savedInstanceState),并且您还需要定义getcontext()在您的方法中…为什么这样说?super.onCreate()是正确的调用方法。为什么这样说?super.onCreate()是正确的调用方法。
li.inflate(R.layout.mylayout,null);