ここでは、jsonを使用して1つのテキストビューで複数の行の値を取得するために複数回試みたコードを示します。複数の行のデータを1つのテキストビューで表示します。
protected Void doInBackground(Void... arg0)
{
HttpClient myClient = new DefaultHttpClient();
HttpPost myConnection = new HttpPost("http://192.168.1.5/send-data.php");
try {
response = myClient.execute(myConnection);
str = EntityUtils.toString(response.getEntity(), "UTF-8");
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try{
JSONArray jArray = new JSONArray(str);
for(int i=0; i <jArray.length(); i++) {
json = jArray.getJSONObject(i);
}
} catch (JSONException e) {
e.printStackTrace();
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void result)
{
try {
textview.setText(json.getString("survey_textresponse"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Hiding progress bar after done loading TextView.
progressbar.setVisibility(View.GONE);
}
}
}
私はchromeで直接phpファイルを実行すると、データベースからのすべての値を表示し、アンドロイドアプリケーションでは最初の行の値のみを表示します。
私はtextviewを追加しました。 setText(........ onPostExecuteメソッド内では.......)。 –
私は、指定したコードでonPostExecuteメソッドにこの行を追加したところ、魔法のように動作するようになったので、textviewはすべての行データを表示しています –
** setText(..)**を使用してすべての行をポストすると、リスト内の値をループするとTextViewのテキストが上書きされ、setText(..)を使用して追加されない可能性があります。 –