3

名前、年齢、学年を含むカスタム リストがあります。リストをループして、テーブル レイアウトに内容を表示したいです。各行には次の属性があります。行には何らかのスタイルがあります。

  Name,
   Age,
   Age_Value,
   Grade,
   Grade_Value

ここで、Age と Grades は単なるラベルです。以下にサンプル テーブルを示します。

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

これらの項目は同じ行に追加されるため、結果は 1 行で表示されます。それらを別々の行に表示するにはどうすればよいですか

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

このように追加できます...ここで、textViewを追加したプログラムでTableRowを追加しました。

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 に答える