2016-11-08 6 views
-2

私はJSONの研究を行った。しかし、JSONObjectの複数のテキスト表示を許可する方法ではなく、JSONArrayのチュートリアルしか見つかりませんでした。私は別の方法、パラメータや何を追加する必要がありますか?どのようにして複数のテキストビューに複数のJSON値を返すのですか?

これは、あなたがそれを見たい場合はここで

{ 
    "name": "iss", 
    "id": 25544, 
    "latitude": -16.621580566205, 
    "longitude": -22.573425077475, 
    "altitude": 403.33965999684, 
    "velocity": 27615.932538565, 
    "visibility": "daylight", 
    "footprint": 4421.7128198729, 
    "timestamp": 1478617317, 
    "daynum": 2457701.1263542, 
    "solar_lat": -16.808913358406, 
    "solar_lon": 310.46294067763, 
    "units": "kilometers" 
} 

はコードで、あなたがやっている

public class IsstatusActivity extends AppCompatActivity { 
    String longitSt; 
    JSONParser jsonparser = new JSONParser(); 
    TextView latitude; 
    TextView longitude; 
    String lat; 
    String longit; 
    JSONObject jobj = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.isstatus); 
     latitude = (TextView) findViewById(R.id.Coordinates); 

     new retrievedata().execute(); 
    } 

    class retrievedata extends AsyncTask<String, String, String> { 

     @Override 
     public String doInBackground(String... args) { 
      jobj = jsonparser.makeHttpRequest("http://api.wheretheiss.at/v1/satellites/25544"); 
      try { 
       lat = "latitude: " + jobj.getString("latitude"); 
       longit = "longitude :" + jobj.getString("longitude"); 
      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      return lat; 
     } 

     @Override 
     protected void onPostExecute(String lat) { 
      latitude.setText(lat); 
      longit.setText(longitude); 
     } 
    } 
} 
+0

達成しようとしているものは何ですか? –

+0

rotected void onPostExecute(String lat、String long){ latitude.setText(lat); longit.setText(longitude); } – CelestialCreator

+0

現在のコードにはどのような問題がありますか? –

答えて

0

JSONであることonPostExecute(で間違った
)の代わりに、longit.setText(経度はTextView参照でlongitudeはString.Itです。これは次のようになります
1. String latとlongをグローバル変数として使用します。
2.ネットワーク呼び出しを行った後、緯度と経度の値を設定します。
3.あなたのtextviewsのonPostExecute setTextで。

+0

@Override protected void onPostExecute(String lat){ latitude.setText(lat); longitude.setText(longit); }} } – CelestialCreator

+0

は、私はそれを固定 –

+0

それが今取り組んでいるが、それはエラーに – CelestialCreator

関連する問題