我调用了一个make layout方法,它接受输入标签和输入
public void makeLayout(String label, String inputType) {
Toast.makeText(getApplicationContext(), label + " " + inputType,
Toast.LENGTH_SHORT).show();
LayoutInflater vi = (LayoutInflater) getApplicationContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = vi.inflate(R.layout.activity_main, null);
// fill in any details dynamically here
TextView textView = (TextView) v.findViewById(R.id.textView1);
textView.setText("your text");
// insert into main view
ViewGroup insertPoint = (ViewGroup) findViewById(R.id.AdvancedCatalogContainer);
insertPoint.addView(v, 0, new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT));
}
现在基于输入类型参数,我想在布局活动main中添加视图(在任何线性布局内)。 我多次调用此方法,但希望一次显示所有视图,即动态创建整个布局。应该采用什么方法?我想添加一个使得主要活动的布局方法从异步任务调用的东西。 我需要你宝贵的建议,因为我是Android技术的新手。
答案 0 :(得分:4)
首先,你必须熟悉java(在我看来)。
1)在XML布局中声明线性布局。像:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/AdvancedCatalogContainer"
>
</LinearLayout>
2)获得对该观点的反对意见:
private LinearLayout rootView=findViewById(R.id.AdvancedCatalogContainer);
3)声明一个这样的方法:
public void fillLayout(LinearLayout root,TextView v){
v.setText("your text")
root.addView(v);
}
4)在onCreate方法或ui thread中的任何地方调用此方法。
... extends AsycTask<blah,blah,blah>{
onPostExecute(blah){
for(many times){
fillLayout(linearLayout,textView);
}
}
修改强>
如果您想显示滚动列表等数据集合,请考虑使用ListView或RecycleView代替。