В Android :: Когда setContentView () заменяется новым макетом во время выполнения, метод которого вызывается - PullRequest
1 голос
/ 05 декабря 2011

Привет, я новичок в программировании Android.Вот моя проблема ... я разработал 2 макета.

1) R.layout.main : он состоит из одного TextField, одного EditText и одной кнопки

2) R.layout.window : здесь сначала находятся 5 кнопок

, отображается R.layout.main. По умолчанию R.layout.main вызывает так, когда я нажимаю кнопкуэтот основной макет необходимо переслать в r.layout.window.Процесс пересылки в порядке ..

НО, КОГДА Я ВЫЗЫВАЮ, КАК BUTTON button=(Button)findViewById(R.id.b1);// b1 is at R.layout.window

я получаю исключение .. ТАК МОЖНО ЗНАТЬ, КАКОЙ МЕТОД БУДЕТ ВЫЗВАН, КОГДА setContentView () ВЫЗЫВАЕТСЯ иОТ ONCREATE () ВОЗМОЖНО ВЫЗВАТЬ НЕСКОЛЬКО РАСПОЛОЖЕНИЙ R.id.namess ..

в ожидании ответа

1 Ответ

2 голосов
/ 05 декабря 2011
public class UI extends Activity {
    LayoutInflater factory 
    View layout1;
    View layout2;    
public void onCreate(Bundle bundle){
 .....
 .....

 factory =getLayoutInflater();
 layout1 =  factory.inflate(R.layout.main, null);
 layout2 =  factory.inflate(R.layout.window, null);
.....
..... 
   }
}



//access R.id.b1 in R.layout.window;

попробуйте это

Button button=(Button)layout2.findViewById(R.id.b1);

если вы установите для представления содержимого значение R.layout.main следующим образом setContentView(R.layout.main);, то Вы можете получить доступ к виджетам в R.layout.main по findViewById() только так

Button b = (Button)findViewById(R.id.button1);

, где R.id.button1 внутри R.layout.main, затем, когда вы закончите с R.layout.main, задайте вид содержимого макета окна и затем получите доступ к виджетам внутри него

setContentView(R.layout.window);

//now you can access elements in window layout using findViewById
Button b2  =(Button)findViewById(R.id.button2); 

надеюсь, вы понимаете

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...