gpt4 book ai didi

java - 从 URL 加载 JSON 数据时如何显示加载(圆圈)

转载 作者:行者123 更新时间:2023-12-01 20:19:50 25 4
gpt4 key购买 nike

我是 Android Studio 新手,我正在尝试让我的简单应用程序使用 Volley 从 URL 获取 JSON 数据。
一切都很好,但我想在获取 JSON 数据时显示一个加载圆圈。

我的代码(如果有人可以帮助我)

package imo.meteoiraq;

import android.os.Handler;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.json.JSONException;
import org.json.JSONObject;

import java.security.Timestamp;

public class MainActivity extends AppCompatActivity {
RequestQueue rq;
TextView timeDesc, tempDesc, windspeedDesc, windguestDesc, humdityDesc;
int ages;
int temp;
int windspeed;
int windguest;
int humdity;
long timeupdate;

String url = "stationlookup?station=I1410&units=metric&v=2.0&format=json";

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

rq = Volley.newRequestQueue(this);

timeDesc = (TextView) findViewById(R.id.timeupdateDesc);
tempDesc = (TextView) findViewById(R.id.tempid);
windspeedDesc = (TextView) findViewById(R.id.windid);
windguestDesc = (TextView) findViewById(R.id.windgustid);
humdityDesc = (TextView) findViewById(R.id.humdid);

sendjsonrequest();
}

public void sendjsonrequest() {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {

JSONObject stationsJO = response.getJSONObject("stations");
JSONObject I1410JO = stationsJO.getJSONObject("I1410");
temp = I1410JO.getInt("temperature");
windspeed = I1410JO.getInt("wind_speed");
windguest = I1410JO.getInt("wind_gust_speed");
humdity = I1410JO.getInt("humidity");
timeupdate = I1410JO.getLong("updated") * 1000L;

tempDesc.setText(Integer.toString(temp));
windspeedDesc.setText(Integer.toString(windspeed));
windguestDesc.setText(Integer.toString(windguest));
humdityDesc.setText(Integer.toString(humdity));
timeDesc.setText(getDate(timeupdate));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {

}
});
rq.add(jsonObjectRequest);
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
@Override
public void run() {
sendjsonrequest();
handler.postDelayed(this, 6000);//60 second delay
}
};
handler.postDelayed(runnable, 1000);
}

private String getDate(long timeStamp) {
try {
DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
Date netDate = (new Date(timeStamp));
return sdf.format(netDate);
} catch (Exception ex) {
return "xx";
}
}


}

最佳答案

试试这个:

package imo.meteoiraq;

import android.os.Handler;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.json.JSONException;
import org.json.JSONObject;

import java.security.Timestamp;

public class MainActivity extends AppCompatActivity {
RequestQueue rq;
TextView timeDesc, tempDesc, windspeedDesc, windguestDesc, humdityDesc;
int ages;
int temp;
int windspeed;
int windguest;
int humdity;
long timeupdate;

String url = "stationlookup?station=I1410&units=metric&v=2.0&format=json";

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

rq = Volley.newRequestQueue(this);

timeDesc = (TextView) findViewById(R.id.timeupdateDesc);
tempDesc = (TextView) findViewById(R.id.tempid);
windspeedDesc = (TextView) findViewById(R.id.windid);
windguestDesc = (TextView) findViewById(R.id.windgustid);
humdityDesc = (TextView) findViewById(R.id.humdid);

sendjsonrequest();
}

public void sendjsonrequest() {
final ProgressDialog dialog = ProgressDialog.show(this, null, "Please Wait");
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
dialog.dismiss();
try {

JSONObject stationsJO = response.getJSONObject("stations");
JSONObject I1410JO = stationsJO.getJSONObject("I1410");
temp = I1410JO.getInt("temperature");
windspeed = I1410JO.getInt("wind_speed");
windguest = I1410JO.getInt("wind_gust_speed");
humdity = I1410JO.getInt("humidity");
timeupdate = I1410JO.getLong("updated") * 1000L;

tempDesc.setText(Integer.toString(temp));
windspeedDesc.setText(Integer.toString(windspeed));
windguestDesc.setText(Integer.toString(windguest));
humdityDesc.setText(Integer.toString(humdity));
timeDesc.setText(getDate(timeupdate));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
dialog.dismiss();
}
});
rq.add(jsonObjectRequest);
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
@Override
public void run() {
sendjsonrequest();
handler.postDelayed(this, 6000);//60 second delay
}
};
handler.postDelayed(runnable, 1000);
}

private String getDate(long timeStamp) {
try {
DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
Date netDate = (new Date(timeStamp));
return sdf.format(netDate);
} catch (Exception ex) {
return "xx";
}
}


}

关于java - 从 URL 加载 JSON 数据时如何显示加载(圆圈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45074335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com