Невозможно использовать LayoutInflater из onOptionsItemSelected

Я пытаюсь раздуть макет через пункт меню параметров. код, который я пытался использовать, выглядит следующим образом

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 не принимается. Сообщение об ошибке: «Метод inflate (int, ViewGroup, boolean) в типе LayoutInflater неприменим для аргументов (int, test01, boolean)»

Кажется, я не указываю правильные значения параметров. Само меню работает нормально, так как я могу заменить LayoutInflater на setContentView

Я был бы очень признателен за вашу помощь, "спасибо


person Deepak    schedule 17.05.2011    source источник


Ответы (2)


Заменять

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

с участием

li.inflate(R.layout.mylayout,null);
person Aditya Kushwaha    schedule 09.01.2013

Пожалуйста, используйте base.oncreate(savedInstanceState) вместо super.oncreate(savedInstanceState) в вашей программе... а также вам нужно определить getcontext() в вашем методе...

person vivek    schedule 09.08.2013
comment
почему ты говоришь это? super.onCreate() - правильный метод для вызова. - person Jordan; 14.11.2013