【问题标题】:Confused on how to make variable in class? [closed]对如何在课堂上进行变量感到困惑? [关闭]
【发布时间】:2017-07-01 06:34:16
【问题描述】:

我有一个类(公共类 SaveTheFeed 扩展 AsyncTask {) 在课堂上,我有一个受保护的 void 可以获取和解释某些 JSON 信息。我想将 JSON 的不同部分保存为字符串,以便稍后在代码中使用。简单地写String fajr = cityObject.getString("fajr"); 似乎不起作用,我也不能使用 public 修饰符。如何创建这些字符串?

这里是受保护的虚空:

        protected void outputTimings(JSONArray jsonArray) {
        String[] prayers = {"fajr", "shurooq", "dhuhr", "asr", "maghrib", "isha"};
        try {
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject cityObject =
                        jsonArray.getJSONObject(i);
                // for(int z=0; z < cityObject.length(); z++) {

                //Log.d("result", String.valueOf(prayers[i++]));
                result = result + "fajr" + " : "
                        + cityObject.getString("fajr") + "\n" + result + "shurooq" + " : "
                        + cityObject.getString("shurooq") + "\n" + result + "dhuhr" + " : "
                        + cityObject.getString("dhuhr") + "\n" + result + "asr" + " : "
                        + cityObject.getString("asr") + "\n" + result + "maghrib" + " : "
                        + cityObject.getString("maghrib") + "\n" + result + "isha" + " : "
                        + cityObject.getString("isha") + "\n";




            }

我想为祈祷的字符串值创建变量

【问题讨论】:

  • 只需全局声明变量
  • 你要求我们做大量的读心术。
  • 那么你需要知道什么,我对这个非常陌生......
  • 请贴出你代码的相关部分
  • @ajb 完成添加代码

标签: java android json


【解决方案1】:

好吧@Fencer300,

简单地做一个简单的bean类(Model类和getter setter methd)

// make a city bean class
public class cityModel implements Serializable {
private String fajr;

// do for more same ass

public String getFajr() {
    return fajr;
}

public void setFajr(String fajr) {
    this.fajr= fajr;
}

}

protected void outputTimings(JSONArray jsonArray) {
    String[] prayers = {"fajr", "shurooq", "dhuhr", "asr", "maghrib", 
"isha"};
    cityModel cityObj;
    try {
        cityObj= new cityModel();
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject cityObject =
                    jsonArray.getJSONObject(i);
            // for(int z=0; z < cityObject.length(); z++) {
            cityObj.setFajr(""+cityObject.getString("fajr"))
            // do for more same as

        }
}

现在你可以轻松地使用 fajr 值,为同一个敌人做所有

【讨论】:

  • 你想在哪里打印价值简单的使用这个 cityModel cityObj= new cityModel();字符串 fajr=cityObj.getFajr();任何你能得到和使用的地方。
  • 当我这样做时,它会将变量返回为 null
【解决方案2】:

将字符串作为 asynctask 的返回值应该使其可用于上面的递归类。我知道它部分地打败了 asynctask 的原因,但你可能需要使用

AsyncTask().execute(string, string).get();

让类等待返回值,否则我猜可能存在竞争条件的风险。我希望这有帮助。

Android 相关文档,见 get():

https://developer.android.com/reference/android/os/AsyncTask.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 2012-05-03
    • 1970-01-01
    相关资源
    最近更新 更多