嗨,我是Android编程新手。 我的问题是...... 我设计了2个布局。
1) R.layout.main :它包含一个TextField,一个EditText和一个Button
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 ..
等待回复
答案 0 :(得分:2)
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);
希望你理解