0
public class MainActivity extends AppWidgetProvider
{
TextView tv;
RemoteViews views;
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context,appWidgetManager,appWidgetIds);
for(int i=0; i<appWidgetIds.length; i++){
int currentWidgetId = appWidgetIds[i];
views = new RemoteViews(context.getPackageName(),R.layout.activity_main);
appWidgetManager.updateAppWidget(currentWidgetId,views);
new PostTask().execute("url");
}
}
private class PostTask extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
String url = params[0];
// Dummy code
OkHttpClient client = new OkHttpClient();
client.setConnectTimeout(1, TimeUnit.MINUTES); // connect timeout
client.setReadTimeout(1, TimeUnit.MINUTES); // socket timeout
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "data=something");
Request request = new Request.Builder()
.url(url)
.post(body)
.addHeader("cache-control", "no-cache")
.addHeader("postman-token", "7a4d5df8-5aed-19bf-e1fb-c85f821c1d10")
.addHeader("content-type", "application/x-www-form-urlencoded")
.build();
Response response = null;
try {
response = client.newCall(request).execute();
return response.body().string();
} catch (Exception e1) {
e1.printStackTrace();
return e1.toString();
}
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
String data = "";
try {
JSONObject jsonRootObject = new JSONObject(result);
//Get the instance of JSONArray that contains JSONObjects
JSONArray jsonArray = jsonRootObject.optJSONArray("response_data");
//Iterate the jsonArray and print the info of JSONObjects
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
int id = Integer.parseInt(jsonObject.optString("CDRId").toString());
String name = jsonObject.optString("Status").toString();
data += "Agent : " + (i + 1) + "\nCDRId : " + id + " \n Status : " + name + " \n ";
}
views.setTextViewText(R.id.tv,data);
} catch (Exception e) {
views.setTextViewText(R.id.tv,e.toString());
}
}
}
我試圖讓JSON的一個小部件的一部分(即我先前解析)。我使用AsyncTask將其與主線程分開,並使用OkHttpClient庫來獲取JSON。我有類PostTask得到我解析的JSON。但可以請任何人告訴我如何顯示它在小部件中。這是代碼。
你想要顯示哪個小部件? – Vucko
嘗試遵循Android命名約定。你的'MainActivity'有'BroadcastReceiver'類型,而不是'Activity' –
@Vucko我想在textview中顯示任何android小部件中解析的JSON –