我从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?
由于
答案 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 !!