【问题标题】:How to set jsonarray to textview?如何将 jsonarray 设置为 textview?
【发布时间】:2016-04-10 11:34:13
【问题描述】:

我从 webservice 得到一个 json 数组,但是当我将值设置为 textview 时,我只得到最后一个值。

代码

JSONObject openhrsjson = new JSONObject(opening_hours);
String resultOpnHrs = openhrsjson.getString(WEEKDAY_TEXT);                              
JSONArray jsonArrayOpnHrs = new JSONArray(resultOpnHrs);
for (int j = 0; j < jsonArrayOpnHrs.length();j++){
    final String openhrs = jsonArrayOpnHrs.getString(j);
    Log.i("openhrs",openhrs);
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            txtOpenHrs.setText(openhrs);
        }
     });
    }

Logcat

I/resultOpnHrs﹕ ["Monday: Open 24 hours","Tuesday: Open 24 hours","Wednesday: Open 24 hours","Thursday: Open 24 hours","Friday: Open 24 hours","Saturday: Open 24 hours","Sunday: Open 24 hours"]

I/openhrs﹕星期一:24 小时营业 I/openhrs﹕星期二:24 小时营业 I/openhrs:星期三:24小时营业 I/openhrs:星期四:24小时营业 I/openhrs﹕周五:24小时营业 I/openhrs﹕星期六:24小时营业 I/openhrs﹕星期日:24小时营业

如何将整个字符串值设置为文本视图?

谢谢

【问题讨论】:

  • String s = jsonArray.toString();
  • @RakshitNawani 我在文本视图中得到方括号、引号和逗号的结果

标签: android


【解决方案1】:

将您的字符串 openhrs 更改为 openhrs += jsonarrayopenhrs.getstring(j)

它将json数组的每个值添加到字符串openhrs。

你所做的是每次循环进入你的代码时替换 openhrs 的值,这就是为什么你总是得到最后一个结果

【讨论】:

    【解决方案2】:

    您应该将所有字符串附加到一种字符串数据类型中,而不是设置为 editText 像这样:

    StringBuffer result = new StringBuffer();
    for (int i = 0; i < a.length; i++) {
    result.append( a[i] );
    }
    String mynewstring = result.toString();     
    

    现在将 mynewString 设置为 EditText!

    【讨论】:

      【解决方案3】:

      也许你正在寻找像这里这样的附加文本,

      txtOpenHrs.setText("");
      
      JSONObject openhrsjson = new JSONObject(opening_hours);
      String resultOpnHrs = openhrsjson.getString(WEEKDAY_TEXT);                              
      JSONArray jsonArrayOpnHrs = new JSONArray(resultOpnHrs);
      for (int j = 0; j < jsonArrayOpnHrs.length();j++){
          final String openhrs = jsonArrayOpnHrs.getString(j);
          Log.i("openhrs",openhrs);
          runOnUiThread(new Runnable() {
              @Override
              public void run() {
                  txtOpenHrs.append(openhrs); //Append texts to textView
      
              }
           });
          }
      

      【讨论】:

      • 我以前这样做过,但我得到了相同的结果,但如果我做 jsonArrayOpnHrs.toString 那么我得到的所有值除了 [] 和引号
      • 是的,就是这样。
      猜你喜欢
      • 1970-01-01
      • 2023-03-17
      • 2017-03-04
      • 2017-06-28
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多