2016-11-08 55 views
-2

我做了JSON的研究。但只发现JSONArray的教程,而不是如何允许JSONObject的多个文本视图。我应该有另一种方法,添加参数或什么?如何让多个JSON值返回多个文本视图?

这是我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

你做错了
在onPostExecute()而不是longit.setText(经度)使用longitude.setText(longit)作为经度是一个TextView引用,longit是一个String.It是这样的
1.使用String lat和long作为全局变量。
2.进行网络调用后,设置lat和long值。
3.在onPostExecute setText中为您的textviews。

+0

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

+0

是现在工作 –

+0

我固定它,但它有一个错误 – CelestialCreator