3

我有一个包含姓名、年龄和等级的自定义列表。我想遍历列表并在表格布局中显示内容。每一行将具有以下属性。行将具有某种样式

  Name,
   Age,
   Age_Value,
   Grade,
   Grade_Value

这里年龄和成绩只是一个标签。下面是一个示例表

Dolly
Age
23
Grade
A+

Roman
Age
22
Grade 
C

Ben
Age
23
Grade
B+

我想动态地将这些细节添加到我的布局中的表格布局中。

这是我尝试的代码

 for(int j=0;j<_attributeList.size();j++)
                      {

                          TableRow tr = new TableRow(MyActivity.this);
                          tr.setLayoutParams(new LayoutParams(
                                  LayoutParams.FILL_PARENT,
                                  LayoutParams.WRAP_CONTENT));

                              TextView tvName = new TextView(MyActivity.this);
                              tvName.setPadding(3,0,0,0);
                              tvName.setText(_attributeList.get(j).getName() +" : ");
                              tr.addView(tvName);

                              TextView tvAgeL = new TextView(MyActivity.this);

                              tvAgeL .setText("Age");
                              tr.addView(tvAgeL );

                              TextView tvAgeValue = new TextView(MyActivity.this);
                              tvAgeValue .setPadding(3,0,0,0);
                              tvAgeValue .setText(_attributeList.get(j).getValue() +" : ");
                              tr.addView(tvAgeValue );



                          attributeTable.addView(tr, new TableLayout.LayoutParams(
                                    LayoutParams.FILL_PARENT,
                                    LayoutParams.WRAP_CONTENT));
                     }
                    }

由于这些项目正在添加到同一行中,因此我在一行中获得了结果。我怎样才能在单独的行中显示它们

4

2 回答 2

3

你应该这样尝试

代码

for(int i = 0; i < _attributeList.size();i++){              

    TableRow newRow = new TableRow(getApplicationContext());
    newRow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT));

    newCheckBox = new CheckBox(getApplicationContext());

    TextView feeTypeText = new TextView(getApplicationContext());
    feeTypeText.setText(jsonObj.getString("feeType"));
    feeTypeText.setTextColor(Color.BLACK);
    feeTypeText.setTextSize(16f);
    feeTypeText.setTypeface(tf);

    TextView dueAmountText = new TextView(getApplicationContext());
    dueAmountText.setText(jsonObj.getString("dueAmount"));
    dueAmountText.setTextColor(Color.BLACK);
    dueAmountText.setTextSize(16f);
    dueAmountText.setTypeface(tf);

    TextView dueDateText = new TextView(getApplicationContext());
    dueDateText.setText(jsonObj.getString("dueDate"));
    dueDateText.setTextColor(Color.BLACK);
    dueDateText.setTextSize(16f);
    dueDateText.setTypeface(tf);

    newRow.addView(newCheckBox,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,0.8f)));
    newRow.addView(feeTypeText,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,0.8f)));
    newRow.addView(dueAmountText,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,1.0f)));
    newRow.addView(dueDateText,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,1.0f)));
    attributeTable.addView(newRow);
}
于 2012-11-08T12:19:53.560 回答
1

你可以像这样添加......在这里我以编程方式添加了TableRow,我在其中添加了textView。

addtree.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View arg0) 
        {


                tr1 = new TableRow(YourActivity.this);
                tr1.setClickable(true);
                tr1.setId(jj);
                tr1.setPadding(0, 5, 0, 5);
                Log.d("id", "id is......"+tr1.getId());
                LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

                TextView textview = new TextView(New_Quote_Activity.this);

                textview.setText("Job "+jj);
                textview.setTextColor(Color.BLACK);
                textview.setTypeface(null, Typeface.BOLD);
                textview.setTextSize(14);
                textview.setPadding(5, 0, 0, 0);


                View vv=new View(New_Quote_Activity.this);
                vv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,1));

                vv.setBackgroundResource(R.color.viewcolor);

                View vv1=new View(New_Quote_Activity.this);
                vv1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,1));

                vv1.setBackgroundResource(R.color.viewcolor);
                tr1.addView(textview);

                table_crete_invoice.addView(vv1);
                table_crete_invoice.addView(tr1,layoutParams);
                table_crete_invoice.addView(vv);


            }
于 2012-11-08T12:23:22.583 回答