如何将jsonarray设置为textview?

时间:2016-04-10 11:34:13

标签: android

我从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小时开放/开放时间:星期二:24小时开放   I / openhrs:周三:24小时开放/开放时间:周四:24小时开放   我/ openhrs:星期五:24小时开放/开放时间:星期六:24小时开放   我/ openhrs:周日:24小时开放

如何将整个字符串值设置为textview?

由于

2 个答案:

答案 0 :(得分:1)

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

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

你正在做的是每次循环进入你的代码时你取代openhrs的值,这就是为什么你总是得到最后的结果

答案 1 :(得分:0)

您应该将所有字符串附加到一个字符串数据类型中,而不是设置为 editText ,如下所示:

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

现在将mynewString设置为EditText !!