Java 如何从onPostExecute()到onCreate获取值
我声明一个全局变量BigCLat和BigCLng,如下所示: 公共静态字符串BigCLat; 公共静态字符串BigCLng 并更新onPostExecute中的值 当我尝试在这个方法中设置text时,它会得到正确的值。但是,它在onCreate中不是update和null 解释:Java 如何从onPostExecute()到onCreate获取值,java,android,android-asynctask,Java,Android,Android Asynctask,我声明一个全局变量BigCLat和BigCLng,如下所示: 公共静态字符串BigCLat; 公共静态字符串BigCLng 并更新onPostExecute中的值 当我尝试在这个方法中设置text时,它会得到正确的值。但是,它在onCreate中不是update和null 解释: 我需要为我的全局变量(BigCLat,BigCLng)设置一个值,但在调用onCreate时它不会更新 谢谢你的回答 这是我的onPostExecute public void onPostExecute(Strin
我需要为我的全局变量(BigCLat,BigCLng)设置一个值,但在调用onCreate时它不会更新 谢谢你的回答 这是我的onPostExecute
public void onPostExecute(String result1) {
BPlace_data = new ArrayList<>();
try {
JSONObject jsonRoot = new JSONObject(result1);
JSONArray jArray = jsonRoot.getJSONArray("results");
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
NearbyPlace nearbyPlace = new NearbyPlace();
nearbyPlace.place_name = json_data.getString("name");
nearbyPlace.vicinity = json_data.getString("vicinity");
nearbyPlace.lat = json_data.getJSONObject("geometry").getJSONObject("location").getString("lat");
nearbyPlace.lng = json_data.getJSONObject("geometry").getJSONObject("location").getString("lng");
nearbyPlace.reference = json_data.getString("reference");
BPlace_data.add(nearbyPlace);
}
BigCLat = BPlace_data.get(0).lat;
BigCLng = BPlace_data.get(0).lng;
TextView BigCLa = (TextView) findViewById(R.id.textView4);
BigCLa.setText(BigCLat);
} catch (JSONException e) {
Log.d("Exception", e.toString());
}
}
public void onPostExecute(字符串结果1){
BPlace_data=new ArrayList();
试一试{
JSONObject jsonRoot=新的JSONObject(结果1);
JSONArray jArray=jsonRoot.getJSONArray(“结果”);
for(int i=0;i
尝试以下步骤
一,。将以下行放在onCreate()中
二,。使BigCLa全球化
三,。从onPostExecute()中删除以下行
四,。保持所有其他东西原样
现在构建代码并检查屏幕上的更新值。设置
Textview BigCLa代码>作为全局代码并使用
BigCLa=(TextView)findViewById(R.id.textView4)代码>
内部OnCreate
方法。
将onPostExecute
方法中的BigCla
值更新为BigCla.setText(BigCLat)代码>哦!我得到更新的值。但我想在onCreate上更新BigCLat、BigCLng和setText。@user3712289但我想在onCreate上更新BigCLat、BigCLng和setText吗?请解释。我需要为我的全局变量(BigCLat,BigCLng)设置一个值,但在调用onCreate时它不会更新。@user3712289您不能在onCreate()中访问此值,因为onPostExecute()调用的时间晚于onCreate()@user3712289为什么要在onCreate()中访问这些变量?有什么具体要求吗?
BigCLa = (TextView) findViewById(R.id.textView4);
TextView BigCLa = (TextView) findViewById(R.id.textView4);