Android 我的json响应的输出显示数据库中的最后一项
我试图在tablelayout中显示数据库的内容,我已从数据库中获取数据,并将其设置为在我的android应用程序中显示,但当数据显示时,它会覆盖先前获取的数据,只显示最后一项 这是一个例外,除了我的代码,我认为我得到了错误的代码Android 我的json响应的输出显示数据库中的最后一项,android,json,tablelayout,Android,Json,Tablelayout,我试图在tablelayout中显示数据库的内容,我已从数据库中获取数据,并将其设置为在我的android应用程序中显示,但当数据显示时,它会覆盖先前获取的数据,只显示最后一项 这是一个例外,除了我的代码,我认为我得到了错误的代码 @Override protected void onPostExecute(String result) { /* TextView textView= (TextView)findViewById(R.id.textview);
@Override
protected void onPostExecute(String result) {
/* TextView textView= (TextView)findViewById(R.id.textview);
textView.setText(result);*/
json_string = result;
try {
jsonObject = new JSONObject(json_string);
jsonArray = jsonObject.getJSONArray("server_response");
int count = 0;
String id, inv_id, refnumber, description, details, qty, unit_price, amount;
Double subTotal = 00.00;
int sn = 1;
Double dAmount;
while (count < jsonArray.length()) {
JSONObject JO = jsonArray.getJSONObject(count);
description = JO.getString("description");
qty = JO.getString("qty");
unit_price = JO.getString("unit_price");
amount = JO.getString("amount");
txtDescription.setText(description);
txtQty.setText(qty);
txtUnit_price.setText(unit_price);
txtAmount.setText(amount);
txtsn.setText(String.valueOf(sn));
count++;
sn++;
try {
subTotal = subTotal + Double.valueOf(amount);
// dAmount = Double.valueOf(amount);
} catch (NumberFormatException e) {
subTotal = 00.00;
}
}
txtSubTotal.setText(String.valueOf(subTotal));
double VAT = 0.05*(subTotal);
txtVat.setText(String.valueOf(VAT));
Double Total = VAT + subTotal;
txtTotal.setText(String.valueOf(Total));
} catch (JSONException e) {
e.printStackTrace();
}
}
@覆盖
受保护的void onPostExecute(字符串结果){
/*TextView TextView=(TextView)findViewById(R.id.TextView);
setText(结果)*/
json_string=结果;
试一试{
jsonObject=新的jsonObject(json_字符串);
jsonArray=jsonObject.getJSONArray(“服务器响应”);
整数计数=0;
字符串id、存货id、参考号、说明、明细、数量、单价、金额;
双倍小计=00.00;
int sn=1;
双达蒙;
while(count
我的XML布局如下
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="ng.proartisan.invoiceapp.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow>
<TextView
android:text="S/N"
android:background="@drawable/cellborder"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
android:textStyle="bold"
/>
<TextView
android:text="Description"
android:background="@drawable/cellborder"
android:padding="5dp"
android:layout_weight="4"
android:gravity="center"
android:textStyle="bold"
/>
<TextView
android:text="QTY"
android:background="@drawable/cellborder"
android:layout_weight="1"
android:padding="5dp"
android:gravity="center"
android:textStyle="bold"
/>
<TextView
android:text="Unit Price"
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
android:textStyle="bold"
/>
<TextView
android:text="Amount"
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
android:textStyle="bold"
/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/sn"
android:text="S/N"
android:background="@drawable/cellborder"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
/>
<TextView
android:id="@+id/description"
android:text="Description"
android:background="@drawable/cellborder"
android:padding="5dp"
android:layout_weight="4"
android:gravity="center"
/>
<TextView
android:id="@+id/qty"
android:text="QTY"
android:background="@drawable/cellborder"
android:layout_weight="1"
android:padding="5dp"
android:gravity="center"
/>
<TextView
android:id="@+id/unit_price"
android:text="Unit Price"
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
/>
<TextView
android:id="@+id/amount"
android:text="Amount"
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
/>
</TableRow>
<TableRow>
<TextView
android:background="@drawable/cellborder"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
/>
<TextView
android:text="SubTotal"
android:background="@drawable/cellborder"
android:padding="5dp"
android:layout_weight="4"
android:gravity="center"
/>
<TextView
android:background="@drawable/cellborder"
android:layout_weight="1"
android:padding="5dp"
android:gravity="center"
/>
<TextView
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
/>
<TextView
android:id="@+id/subtotal"
android:text=""
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
/>
</TableRow>
<TableRow>
<TextView
android:background="@drawable/cellborder"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
/>
<TextView
android:text="VAT"
android:background="@drawable/cellborder"
android:padding="5dp"
android:layout_weight="4"
android:gravity="center"
/>
<TextView
android:background="@drawable/cellborder"
android:layout_weight="1"
android:padding="5dp"
android:gravity="center"
/>
<TextView
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
/>
<TextView
android:id="@+id/vat"
android:text=""
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
/>
</TableRow>
<TableRow>
<TextView
android:background="@drawable/cellborder"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
/>
<TextView
android:text="Total"
android:background="@drawable/cellborder"
android:padding="5dp"
android:layout_weight="4"
android:gravity="center"
/>
<TextView
android:background="@drawable/cellborder"
android:layout_weight="1"
android:padding="5dp"
android:gravity="center"
/>
<TextView
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
/>
<TextView
android:id="@+id/total"
android:text=""
android:background="@drawable/cellborder"
android:layout_weight="2"
android:padding="5dp"
android:gravity="center"
/>
</TableRow>
</TableLayout>
</LinearLayout>
</ScrollView>
请帮助您正在将数据设置到循环中的同一视图中,其他方法可以解决您的问题,如创建新布局并添加到布局示例:XML文件
layout\u item\u description.XML
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow>
<TextView
android:id="@+id/tv_sn"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
android:text="S/N"
android:textStyle="bold"
/>
<TextView
android:id="@+id/tv_description"
android:layout_weight="4"
android:gravity="center"
android:padding="5dp"
android:text="Description"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_qty"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
android:text="QTY"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_unit_price"
android:layout_weight="2"
android:gravity="center"
android:padding="5dp"
android:text="Unit Price"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_amount"
android:layout_weight="2"
android:gravity="center"
android:padding="5dp"
android:text="Amount"
android:textStyle="bold" />
</TableRow>
</TableLayout>
您正在将数据设置到循环中的同一视图中,另一种解决问题的方法是创建新布局并添加到布局示例:XML文件
layout\u item\u description.XML
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow>
<TextView
android:id="@+id/tv_sn"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
android:text="S/N"
android:textStyle="bold"
/>
<TextView
android:id="@+id/tv_description"
android:layout_weight="4"
android:gravity="center"
android:padding="5dp"
android:text="Description"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_qty"
android:layout_weight="1"
android:gravity="center"
android:padding="5dp"
android:text="QTY"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_unit_price"
android:layout_weight="2"
android:gravity="center"
android:padding="5dp"
android:text="Unit Price"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_amount"
android:layout_weight="2"
android:gravity="center"
android:padding="5dp"
android:text="Amount"
android:textStyle="bold" />
</TableRow>
</TableLayout>
谢谢你的回复,请通过更明确的样本来帮助我谢谢你的回复,请通过更明确的样本来帮助我谢谢姐姐,这是一个完美的搭配Hanks姐姐,这是一个完美的搭配
@Override
protected void onPostExecute(String result) {
/* TextView textView= (TextView)findViewById(R.id.textview);
textView.setText(result);*/
json_string = result;
try {
jsonObject = new JSONObject(json_string);
jsonArray = jsonObject.getJSONArray("server_response");
int count = 0;
String id, inv_id, refnumber, description, details, qty, unit_price, amount;
Double subTotal = 00.00;
int sn = 1;
Double dAmount;
while (count < jsonArray.length()) {
JSONObject JO = jsonArray.getJSONObject(count);
View layout_item_description = getLayoutInflater().inflate(R.layout.layout_item_description, null);
((TextView) layout_item_description.findViewById(R.id.tv_sn)).setText(sn+"");
description = JO.getString("description");
qty = JO.getString("qty");
unit_price = JO.getString("unit_price");
amount = JO.getString("amount");
((TextView) layout_item_description.findViewById(R.id.tv_description)).setText(sn+"");
((TextView) layout_item_description.findViewById(R.id.tv_qty)).setText(sn+"");
((TextView) layout_item_description.findViewById(R.id.tv_unit_price)).setText(sn+"");
((TextView) layout_item_description.findViewById(R.id.tv_amount)).setText(sn+"");
count++;
sn++;
ll_data_description.addView(layout_item_description);
try {
subTotal = subTotal + Double.valueOf(amount);
// dAmount = Double.valueOf(amount);
} catch (NumberFormatException e) {
subTotal = 00.00;
}
}
txtSubTotal.setText(String.valueOf(subTotal));
double VAT = 0.05*(subTotal);
txtVat.setText(String.valueOf(VAT));
Double Total = VAT + subTotal;
txtTotal.setText(String.valueOf(Total));
} catch (JSONException e) {
e.printStackTrace();
}
}