1

サーバーからデータをフェッチTextViewし、(s)を使用して Android アクティビティに表示するプログラムを作成しました。これらのデータを を使用してリストに表示したいのですが、データListViewを表示するためにコードにどのように実装する必要があるのかListView​​ わかりませんリストで

すべての行から2 つのフィールド、つまりTotalAmountItemDetailsを取得しています。

注:ListViewつまり、 listrow_orders用のXMLファイルも作成しました

他のチュートリアルへのリンクは必要ありません。コードに従って簡単に説明してください。理解を深めるために最適です。

OrdersActivity.java:

 public class OrdersActivity extends Activity 
{ 
    public static final String LOG_TAG = "OrdersActivity";

    TextView txtDetail,txtAmount ;
    String MemberID,resultServer,strTotal,strDetails,strOrderID;

    @SuppressLint("NewApi")
    @Override

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_orders);

        // Permission StrictMode
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
            }           

            txtAmount = (TextView)findViewById(R.id.txtTotalAmount);
            txtDetail = (TextView)findViewById(R.id.txtItemDetails);

            String url = "http://172.16.0.4/res/order_fetch.php";
            Intent intent= getIntent();
            MemberID = intent.getStringExtra("MemberID");
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("sMemberID", MemberID));
            resultServer  = getHttpPost(url,params);

            strTotal = "";
            strDetails = "";

            JSONObject c;
            try {
            c = new JSONObject(resultServer);
            strTotal = c.getString("TotalAmount");  
            Log.d("Total Amount::", " "+strTotal);
            strDetails = c.getString("ItemDetails");
            Log.d("Item Details::", " "+strDetails);

            if(!strDetails.equals(""))
            {                   
                txtAmount.setText(strTotal);
                txtDetail.setText(strDetails);              
            }
            else
            {               
                txtDetail.setText("-");
                txtDetail.setText("-");
            }
            } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }       

    }       

activity_orders.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff" >

<ListView 
    android:layout_width="match_parent" 
    android:id="@+id/list_orders" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/header" 
    android:cacheColorHint="#00000000" 
    android:divider="#b5b5b5" 
    android:dividerHeight="1dp" 
    android:layout_alignParentBottom="true" />

</RelativeLayout>

listrow_orders.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
 >

<TextView
    android:id="@+id/txtTotalAmount"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:text="TextView" />

<TextView
    android:id="@+id/txtItemDetails"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView3"
    android:layout_below="@+id/textView3"
    android:text="Item Details Here" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="Total Amount:"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#a60704" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/txtTotalAmount"
    android:layout_below="@+id/txtTotalAmount"
    android:text="Ordered Items:"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#a60704" />

</RelativeLayout>
4

1 に答える 1

2

まず、リクエスト後のリクエストにAsyncTaskを使用する必要があります (このようなものは GUI スレッドで実行されるべきではないため、ブロックされます)。結果を得るには、新しいクラスを作成するのが最善です。結果ごとに、このクラスのインスタンスを作成し、ArrayList.

次に、このチュートリアルをチェックしてください。を使用ArrayAdapter- カスタム アダプターは必要ありません。

于 2013-05-23T11:56:19.973 に答える