如何从数据库创建一些数据的动态视图,如下图所示。在下面的图中,第一行包括1个视图,第二行包括2个视图,第3行包括1个视图和第4个第2行视图。如下图。
我很清楚如何使用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;
}
但我想知道每条线是如何彼此不同的。
答案 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);
}
像这样的东西。我还没有测试过上面的代码。这是一个例子,它应该工作。希望这有帮助。
干杯!