1

I have a custom list with name,age and grade .I want to loop through the list and show the contents in a table layout.Each row will have following attributes.Row will have some kind of styling

  Name,
   Age,
   Age_Value,
   Grade,
   Grade_Value

Here Age and Grades are just a label.Given below is a sample table

Dolly
Age
23
Grade
A+

Roman
Age
22
Grade 
C

Ben
Age
23
Grade
B+

I want to add these details to the Table layout in my layout dynamically.

Here is the code im trying

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

Since these items are adding to the same row im getting results in a single line. How can i show them in seperate rows

2 Answers 2

3

You should try like this

Code

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);
}
Sign up to request clarification or add additional context in comments.

2 Comments

newRow.addView(feeTypeText,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,0.8f))); ..The constructor ViewGroup.LayoutParams(int, int, float) is undefined .am i missing somthing?
I used some linear layouts to acheive the result.Your code really helped.Thank you
1

you can add like this way...here i added TableRow Programatically in which i added 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);


            }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.