我正在尝试通过选项菜单项来增加布局。
我尝试使用的代码如下

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/

10-09 01:24