创建一些数据的动态视图

时间:2017-11-24 04:07:24

标签: android

如何从数据库创建一些数据的动态视图,如下图所示。在下面的图中,第一行包括1个视图,第二行包括2个视图,第3行包括1个视图和第4个第2行视图。如下图。enter image description here

我很清楚如何使用java创建布局,如此代码

final int N = 10; // total number of textviews to add

final TextView[] myTextViews = new TextView[N]; // create an empty array;

for (int i = 0; i < N; i++) {
    // create a new textview
    final TextView rowTextView = new TextView(this);

    // set some properties of rowTextView or something
    rowTextView.setText("This is row #" + i);

    // add the textview to the linearlayout
    myLinearLayout.addView(rowTextView);

    // save a reference to the textview for later
    myTextViews[i] = rowTextView;
}

但我想知道每条线是如何彼此不同的。

1 个答案:

答案 0 :(得分:1)

步骤1:与TextViews一起,以编程方式为每一行创建一个像LinearLayout的容器布局。

步骤2:因此每个具有水平方向的LinearLayout都应代表一条线。

第3步:将您的视图添加到LinearLayout。 然后将所有LinearLayouts添加到父视图中,就像另一个具有垂直方向的LinearLayout

一样

示例:

final int N = 10; // total number of Lines to add
LinearLayout llContainer = new LinearLayout(this);
llContainer.setOrientation(LinearLayout.VERTICAL);

for (int i = 0; i < N; i++) {
    LinearLayout llLine = new LinearLayout(this);
    llLine.setOrientation(LinearLayout.HORIZONTAL);  
    //Make other configurations for the linear layout
    //Since you want 1 and 2 views in each line alternatively you could do this
    if(i%2 ==0){
    //Add one view for all even lines
    //Whatever view you need. Im using a textview.
    TextView tv = new TextView(this);
    //Make your configurations/setText etc
    llLine.addView(tv);
    }else{
    TextView tv1 = new TextView(this);
    TextView tv2 = new TextView(this);
    llLine.addView(tv1);
    llLine.addView(tv2);
    }
    llContainer.addView(llLine);
}

像这样的东西。我还没有测试过上面的代码。这是一个例子,它应该工作。希望这有帮助。

干杯!