gpt4 book ai didi

java - 如何返回 "stylize"JSON API?

转载 作者:行者123 更新时间:2023-12-01 11:16:00 26 4
gpt4 key购买 nike

我有 4 个从 JSON API 获得的字符串,想知道如何设置它们的样式?例如:我有 4 个字符串,分别是最大玩家数、当前玩家数、服务器在线或离线时表示 true 或 false 的 boolean 值以及当前 ping。现在它只是显示如下:

35053

26690

true

205

但我希望它显示为

26690/35053 players online

ping: 205

server online: true

那么我该如何去做呢?

MainActivity.java:

package in.untie.hypixelmobile;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends ListActivity {

private Context context;
private static String url = "http://api.razex.de/server/status/mc.hypixel.net:25565";

private static final String PMAX = "Max";
private static final Boolean ONLINE = false;
private static final String PING = "Ping";
private static final String PCURRENT = "Current";

ArrayList<HashMap<String, String>> jsonlist = new ArrayList<HashMap<String, String>>();

ListView lv;

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

new ProgressTask(MainActivity.this).execute();
}

private class ProgressTask extends AsyncTask<String, Void, Boolean> {

private ProgressDialog dialog;
private ListActivity activity;
private Context context;

public ProgressTask(ListActivity activity) {
this.activity = activity;
context = activity;
dialog = new ProgressDialog(context);
}

@Override
protected void onPreExecute() {
this.dialog.setMessage("Loading");
this.dialog.show();
}

@Override
protected void onPostExecute(Boolean result) {
if (dialog.isShowing()) {
dialog.dismiss();
}

ListAdapter adapter = new SimpleAdapter(context, jsonlist, R.layout.list_item, new String[]{PCURRENT, PMAX, ONLINE.toString(), PING}, new int[]{R.id.ping, R.id.max, R.id.online, R.id.current});

setListAdapter(adapter);

lv = getListView();

}

@Override
protected Boolean doInBackground(String... params) {

JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromURL(url);

try {

String ping = json.getString("ping");
Boolean isonline = json.getBoolean("online");

JSONObject playersObject = json.getJSONObject("players");
String pmax = playersObject.getString("max");
String pcurrent = playersObject.getString("online");

HashMap<String, String> map = new HashMap<String, String>();

if (isonline) {

map.put(PING, ping);
map.put(ONLINE.toString(), isonline.toString());
map.put(PMAX, pmax);
map.put(PCURRENT, pcurrent);
jsonlist.add(map);

} else {

map.put(ONLINE.toString(), isonline.toString());
jsonlist.add(map);

}

} catch (JSONException e) {

e.printStackTrace();

}
return false;
}
}

}

最佳答案

String.format() 通常用于此类任务,例如

String.format("%d/%d players online\n\nping: %s\n\n server online: %s", PCURRENT, PMAX, PING, ONLINE.toString())

仔细阅读 here .

关于java - 如何返回 "stylize"JSON API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31819841/

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