Tengo un JSON cadena devuelta por mi servicio web de la siguiente manera:rellenar la tabla de diseño utilizando JSON cadena
{ "checkrecord" [{ "rollno": "abc2", "porcentaje": 40, "asistido ": 12," perdido ": 34}]," Tabla1 ": []}
La cadena anterior representa mi conjunto de datos. He convertido String en un objeto JSON y ahora quiero poner los datos en la cadena en un TableLayout.
Quiero que la tabla sea como esto cuando se muestran en la aplicación para Android:
rollno percentage attended missed
abc2 40 12 34
Este es el código que estoy utilizando a partir de ahora:
//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));
}
Mi TableLayout contiene un botón y una EditText como el primer TableRow. Después de hacer clic en el botón, obtengo la cadena JSON. Entonces necesito insertar 2 TableRows dinámicamente después de eso según mi requisito.
Mi XML a partir de ahora es la siguiente:
<?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>
Así que mi problema es cómo agregar esos 2 TableRows adicionales a fin de llenarlos con los valores de cadena?
Mi código no funciona bien. No puedo obtener la salida requerida.
¿Alguien puede ayudarme en esto?
Gracias
¿Por qué no probar por vista de lista de múltiples columnas en lugar de tablelayout – Abhi
¿puede dar un ejemplo de vista de lista de varias columnas? –
http://www.google.co.in/#sclient=psy-ab&hl=en&source=hp&q=multicolon+listview+in+android&pbx=1&oq=multicolon+listview+in+android&aq=f&aqi=q-w1&aql=&gs_sm= e & gs_upl = 1166l20720l0l20855l66l46l16l0l0l8l1628l26087l2-5.5.11.10.5.4.2l58l0 y BAV = etc.2, or.r_gc.r_pw., cf.osb y fp = 105f40160a393e37 y BIW = 1024 = 653 y bih – Abhi