我想从代码中自定义我的布局定义(在my_layout.xml
文件中声明)。
不幸的是,我可以使用findViewById()
函数查找特定视图(在my_layout.xml
文件中定义),并在我调用setContentView(R.layout.my_layout)
后才能从代码中自定义它们。
但是如果我想在调用setContentView()
之前首先自定义我的布局呢?如何在致电setContentView()
之前访问特定视图?
答案 0 :(得分:0)
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout myLayout = (RelativeLayout)inflater.inflate(R.layout.my_layout, null);
现在,您可以使用R.layout.my_layout中定义的视图/资源并添加到自定义布局中。
答案 1 :(得分:0)
使用LayoutInflater是解决方案:
LayoutInflater li=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout v= (LinearLayout)li.inflate(R.layout.activity_main, null);
Button b=v.findViewById(R.id.button);
setContentView(v);
答案 2 :(得分:0)
LayoutInflater myInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout layout = (RelativeLayout)myInflater.inflate(R.layout.first_layout, null);
setContentView(layout);
答案 3 :(得分:0)
onCreateView
就是出于这个目的。只需在您的活动或片段中覆盖它,就可以在那里自定义您的视图。