使用JSON字符串填充表格布局

Par*_*shi 5 android json web-services tablelayout

我有一个由我的Web服务返回的JSON字符串,如下所示:

{ "checkrecord"[{ "rollno": "ABC2", "百分比":40, "出席":12, "遗漏":34}], "表1":[]}

上面的String表示我的数据集.我已将String转换为JSON对象,现在我想将String中的数据放入TableLayout.

我希望在Android应用程序上显示时表格如下:

    rollno       percentage    attended    missed
     abc2          40              12        34
Run Code Online (Sandbox Code Playgroud)

这是我现在使用的代码:

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

 }
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何添加这两个额外的TableRows以便用String值填充它们?

我的代码工作不正常.我无法获得所需的输出.

任何人都可以帮助我吗?

谢谢

Abh*_*bhi 3

您可以使用多列列表视图来达到您的目的,

解析 JSON 响应并将值获取到不同的字符串中,然后使用此博客来实现您的目的

多列列表视图