2

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

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

我非常感谢您的帮助,“谢谢

4

2 回答 2

0

代替

li.inflate(R.layout.mylayout,this,true);

li.inflate(R.layout.mylayout,null);
于 2013-01-09T07:32:28.323 回答
-1

请在您的程序中使用 base.oncreate(savedInstanceState) 代替 super.oncreate(savedInstanceState) ...您还需要在您的方法中定义 getcontext () ...

于 2013-08-09T10:24:53.547 回答