如何在线性布局中动态添加视图

How to add view in a linear layout dynamically

我调用了一个采用输入标签和输入的制作布局方法

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));

}

现在基于输入类型参数,我想在布局 activity 主布局(任何线性布局内)中添加视图。 我多次调用此方法,但想一次显示所有视图,即动态创建整个布局时。应该有什么方法?我想添加一件事,使 main activity 的布局方法从异步任务中调用。 我需要您的宝贵建议,因为我是 android 技术的新手。

首先,你必须熟悉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 线程中的任何位置调用此方法。

... extends AsycTask<blah,blah,blah>{
onPostExecute(blah){

  for(many times){

    fillLayout(linearLayout,textView);

  }

}

编辑

如果您想像滚动列表一样显示数据集合,请考虑改用 ListView or RecycleView