0

データをlistViewに配置するasynctaskがあります。最後の入力のみを listView に配置します。3 つの文字列を listView アイテムに配置するために何をすべきかわかりません。私はこれが間違っていることを知っていますが、これは私の現在のコードです.

    class loadComments extends AsyncTask<JSONObject, String, JSONObject> {


            @Override
            protected void onPreExecute() {
                super.onPreExecute();


            } 

            @Override
            protected void onProgressUpdate(String... values) {
                super.onProgressUpdate(values);

            } 

            protected JSONObject doInBackground(JSONObject... params) {


                JSONObject json2 = CollectComments.collectComments(usernameforcomments, offsetNumber);


                    return json2;



            }

            @Override
            protected void onPostExecute(JSONObject json2) {
                try {  
                    if (json2.getString(KEY_SUCCESS) != null) { 
                        registerErrorMsg.setText("");
                        String res2 = json2.getString(KEY_SUCCESS);
                        if(Integer.parseInt(res2) == 1){ 


                            JSONArray commentArray = json2.getJSONArray(KEY_COMMENT);
                            String comments[] = new String[commentArray.length()];
                            for ( int i=0; i<commentArray.length(); i++ ) {
                                comments[i] = commentArray.getString(i);
                            }
                            JSONArray numberArray = json2.getJSONArray(KEY_NUMBER);
                            String numbers[] = new String[numberArray.length()];
                            for ( int i=0; i<numberArray.length(); i++ ) {
                                numberss[i] = numberArray.getString(i);
                            }
                            JSONArray usernameArray = json2.getJSONArray(KEY_USERNAME);
                            String usernames[] = new String[usernameArray.length()];
                            for ( int i=0; i<usernameArray.length(); i++ ) {
                                usernames[i] = usernameArray.getString(i);
                            }



                            setListAdapter(new ArrayAdapter<String>(DashboardActivity.this, R.layout.list_item, R.id.listComment, comments));
                            setListAdapter(new ArrayAdapter<String>(DashboardActivity.this, R.layout.list_item, R.id.listNumber, number));
                            setListAdapter(new ArrayAdapter<String>(DashboardActivity.this, R.layout.list_item, R.id.listPostedBy, usernames));







                            }//end if key is == 1
                        else{
                            // Error in registration
                            registerErrorMsg.setText(json2.getString(KEY_ERROR_MSG));
                        }//end else
                    }//end if
                } //end try

                catch (JSONException e) { 
                    e.printStackTrace();
                }//end catch    
            }
        }


        new loadComments().execute();
4

2 に答える 2

0

アダプターをカスタマイズし、3 つの textView を含む xml ファイルからビューを拡張する必要があります。Android API サンプルコードを確認してください。「extends Adapter」を検索するか、3 つの文字列を設定できるメソッド public abstract View getView (int 位置、View convertView、ViewGroup 親) を検索します。Android リファレンスhttp://developer.android.com/reference/android/widget/Adapter.htmlを確認してください

于 2013-07-10T00:51:29.220 に答える
0
setListAdapter(new ArrayAdapter<String>(DashboardActivity.this, R.layout.list_item, R.id.listComment, comments));
                        setListAdapter(new ArrayAdapter<String>(DashboardActivity.this, R.layout.list_item, R.id.listNumber, number));
                        setListAdapter(new ArrayAdapter<String>(DashboardActivity.this, R.layout.list_item, R.id.listPostedBy, usernames));

は正しくありません。

ArrayAdapter一度 を作成し、ArrayAdapter.add(T Object)データを追加するために使用します。カスタム項目ビューを使用するにはextend ArrayAdapter、オーバーライドする必要があります。ArrayAdapter.getView(int position, View convertView, ViewGroup parent)

編集:

このHow to use ArrayAdapter<myClass>を見てください。

于 2013-07-10T00:52:41.133 に答える