内のすべてのJSONの値を表示することが完全に実行されますが、今、私はテキストビューでJSON値のすべてを表示したいと思います。私はJSONの初心者で、アンドロイドの経験が少ししかありません。私は現在、このチュートリアル<a href="http://www.android-examples.com/android-json-parsing-retrieve-from-url-and-set-mysql-db-data/" rel="nofollow">http://www.android-examples.com/android-json-parsing-retrieve-from-url-and-set-mysql-db-data/</a></p> <p>を勉強していますか
ここに私のMainActivity.javaがあります。
public class MainActivity extends Activity {
TextView textview;
JSONObject json = null;
String str = "";
HttpResponse response;
Context context;
ProgressBar progressbar;
Button button;
JSONArray jArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressbar = (ProgressBar)findViewById(R.id.progressBar1);
textview = (TextView)findViewById(R.id.textView1);
button = (Button)findViewById(R.id.button1);
progressbar.setVisibility(View.GONE);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
progressbar.setVisibility(View.VISIBLE);
new GetTextViewData(context).execute();
}
});
}
public static Map<String,String> parse(JSONObject json , Map<String,String> out) throws JSONException{
Iterator<String> keys = json.keys();
while(keys.hasNext()){
String key = keys.next();
String val = null;
try{
JSONObject value = json.getJSONObject(key);
parse(value,out);
}catch(Exception e){
val = json.getString(key);
}
if(val != null){
out.put(key,val);
}
}
return out;
}
private class GetTextViewData extends AsyncTask<Void, Void, Void>
{
public Context context;
public GetTextViewData(Context context)
{
this.context = context;
}
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0)
{
HttpClient myClient = new DefaultHttpClient();
HttpPost myConnection = new HttpPost("http://192.168.1.9:80/test-androidex/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);
json = jArray.getJSONObject(0);
} 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("name"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
progressbar.setVisibility(View.GONE);
}
}
これは私のJSONです。チュートリアルとはまったく異なります
[{"id": "1"、 "name": "white"、 "status": "0"}、{"id": "2" "名前": "赤"、 "ステータス": "10"}、{"id": "5"、 "名前": "青"、 "ステータス": "15"}
So明らかに私のコードは最初の名前 "白"だけを表示します。すべての値を表示するためにJSONObjectを反復する方法を理解できません。私は他の質問で答えを試みたが、私はそれらを私のコードに組み込むことはできない。