Android 如何将多个JSON值返回到多个文本视图?

Android 如何将多个JSON值返回到多个文本视图?,android,json,Android,Json,我研究了JSON。但是只找到了JSONArray的教程,而没有找到如何使JSONObject允许多个文本视图。我应该有另一种方法,添加参数还是什么 这是我的JSON { "name": "iss", "id": 25544, "latitude": -16.621580566205, "longitude": -22.573425077475, "altitude": 403.33965999684, "velocity": 27615.93253

我研究了
JSON
。但是只找到了
JSONArray
的教程,而没有找到如何使
JSONObject
允许多个文本视图。我应该有另一种方法,添加参数还是什么

这是我的
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);
        }
    }
}
public类IsstatusActivity扩展了AppCompatActivity{
弦长;
JSONParser JSONParser=新的JSONParser();
文本视图纬度;
文本视图经度;
弦拉特;
弦长;
JSONObject jobj=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.isstatus);
纬度=(TextView)findViewById(R.id.坐标);
新建retrievedata().execute();
}
类retrievedata扩展了异步任务{
@凌驾
公共字符串doInBackground(字符串…args){
jobj=jsonparser.makeHttpRequest(“http://api.wheretheiss.at/v1/satellites/25544");
试一试{
lat=“纬度:”+jobj.getString(“纬度”);
longit=“经度:”+jobj.getString(“经度”);
}捕获(JSONException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回lat;
}
@凌驾
受保护的void onPostExecute(字符串lat){
纬度.setText(纬度);
经度;
}
}
}

您在onPostExecute()而不是longit中做错了
。setText(经度)使用经度。setText(longit)因为经度是TextView引用,longit是字符串。它是这样的
1.使用字符串lat和long作为全局变量。

二,。进行网络呼叫后,设置lat和long值。
3。在文本视图的onPostExecute setText中。

您试图实现什么?受保护的void onPostExecute(字符串lat,字符串long){latitude.setText(lat);longit.setText(经度);}当前代码有什么问题?@覆盖受保护的void onPostExecute(字符串lat){latitude.setText(lat);longitude.setText(longit);}}}}}}}}它现在工作了吗?我修复了它,但它有一个错误java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.TextView.setText(java.lang.CharSequence)'在空对象引用上,ongitute在代码中为空。请查看onCreate方法。Add longitude=(TextView)findViewById(R.id.something);