我正在尝试通过选项菜单项来增加布局。
我尝试使用的代码如下
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。
但是然后在第二行中,不接受ViewGroup参数。
错误消息是
“ LayoutInflater类型的方法inflate(int,ViewGroup,boolean)不适用于参数(int,test01,boolean)”
看来我没有提供正确的参数值,
菜单本身工作正常,因为我能够用setContentView替换LayoutInflater
我将衷心感谢您的帮助 ,
“谢谢
最佳答案
更换li.inflate(R.layout.mylayout,this,true);
与
li.inflate(R.layout.mylayout,null);
关于android - 无法从onOptionsItemSelected内部使用LayoutInflater,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6028738/