Заполнение макета таблицы с помощью строки JSON

У меня есть строка JSON, возвращенная моей веб-службой, а именно:

{"checkrecord" [{"rollno": "abc2", "процент": 40, "посещено": 12, "пропущено": 34}], "Таблица1": []}

Строка выше представляет мой набор данных. Я преобразовал String в объект JSON, и теперь я хочу поместить данные из String в TableLayout.

Я хочу, чтобы таблица была такой при отображении в приложении для Android:

    rollno       percentage    attended    missed
     abc2          40              12        34

Это код, который я использую сейчас:

    //json processing code

 public void jsonprocessing(String c)
   {
       try 
       {

       JSONObject jsonobject = new JSONObject(c);

       JSONArray array = jsonobject.getJSONArray("checkrecord");

        int max = array.length();

       for (int j = 0; j < max; j++)
       {

    JSONObject obj = array.getJSONObject(j);
    JSONArray names = obj.names();

    for (int k = 0; k < names.length(); k++) 
        {
             name = names.getString(k);
            value= obj.getString(name);
               createtableLayout();  

        }


       }     

     } 

  catch (JSONException e)           
   {                
      // TODO Auto-generated catch block
    e.printStackTrace();        
}

 }

//create table layout
public void createtableLayout()
{

     Log.d("values",value); //I am able to see the values abc2,40,12 and 34 over  here in logcat  
     TableLayout t= (TableLayout)findViewById(R.id.tablelayout);
         TableRow r1=new TableRow(this);
         r1.setLayoutParams(new LayoutParams(
         LayoutParams.FILL_PARENT,
         LayoutParams.WRAP_CONTENT));    
         TextView t1 = new TextView(this);
         t1.setText(value);
         t1.setTextColor(Color.BLACK);
         t1.setLayoutParams(new LayoutParams(
             LayoutParams.FILL_PARENT,
             LayoutParams.WRAP_CONTENT));
         r1.addView(t1);
         t.addView(r1, new TableLayout.LayoutParams( LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

 }

My TableLayout содержит кнопку и EditText в качестве первой TableRow. После нажатия кнопки я получаю строку JSON. Поэтому мне нужно динамически вставить 2 TableRows после этого в соответствии с моим требованием.

Мой xml на данный момент выглядит следующим образом:

   <?xml version="1.0" encoding="utf-8"?>
   <TableLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tablelayout"
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"
        android:background="#000044">
   <TableRow> 

   <EditText 
        android:id="@+id/edittext" 
        android:width="200px" />

   <Button 
        android:id="@+id/button" 
        android:text="Check Record"/>

   </TableRow> 

   </TableLayout>

Итак, моя проблема в том, как добавить эти 2 дополнительных TableRow, чтобы заполнить их значениями String?

Мой код работает некорректно. Я не могу получить требуемый результат.

Кто-нибудь может мне в этом помочь?

Спасибо

5
задан Parth Doshi 3 December 2011 в 10:05
поделиться