我已经摆弄了几个小时,基本上我正在尝试创建一个JsonObject并在for循环中获取它的值并将其设置为TextView 。据工作但是我只获得了第二循环的价值观,澄清这是从我的JSONObjectAndroid setText for循环中保存JsonObject值覆盖本身
{"Areas":[{"City":"Dallas","State":"Texas"},{"City":"Seattle","State":"Washington"}]}
输出但是我只得到{“城市”:“西雅图”,“国家”:“华盛顿“}我的Textviews setText中的循环中的第二个值。我想在Textview中同时获得第一个和第二个循环。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mystates);
try {
// Create my Json Array
JSONObject newJsonObject = new JSONObject();
JSONArray myarray = new JSONArray();
JSONObject states= new JSONObject();
states.put("City", "Dallas");
states.put("State", "Texas");
JSONObject states2= new JSONObject();
states2.put("City", "Seattle");
states2.put("State", "Washington");
myarray.put(states);
myarray.put(states2);
newJsonObject.put("Areas", array);
// Ends Json Array
//set Textviews
TextView citiess = (TextView)findViewById(R.id.citiess);
TextView statess = (TextView)findViewById(R.id.statess);
String cityString="";
String stateString="";
// retrieve Json Array and set For Loop
JSONArray jaLocalstreams = names.getJSONArray("Areas");
for(int position=0;position<jaLocalstreams.length();position++)
{
JSONObject JO = jaLocalstreams.getJSONObject(position);
cityString= JO.getString("City");
stateString = JO.getString("State");
citiess.setText(""+cityString);
statess.setText(""+stateString);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
我已经非常缩小的问题区域,我认为这是这个
citiess.setText(""+cityString);
statess.setText(""+stateString);
的setText与最新的人这是有意义的替换值,我怎样才能改变这种做法,它不这样做?当我把这个for循环
System.err.println(cityString+","+stateString);
我得到达拉斯,得克萨斯州和华盛顿州西雅图的循环值。这就是为什么我确信setText是问题的任何建议将是伟大的。
你想要什么以后设置这些值的setText将打印最后一个值?仍然有点混乱... –
我想写我的JsonObject的值到我的Textviews中。 JsonObject创建了2个不同的值,即得克萨斯州达拉斯和华盛顿州西雅图。问题是我只得到了西雅图,华盛顿的价值而不是其他的。 – user1949387