【发布时间】:2015-06-30 08:53:37
【问题描述】:
我已使用 ArrayList 成功将 JSON 数据解析到 ListView 中,但无法根据 City 名称填充 List。
就像我允许用户选择城市,然后我尝试使用新的 ArrayList 将结果填充到 ListView 中,但没有将任何数据输入到 ListView 中。
public class TitleListActivity extends Activity {
....
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_title);
......
new JSONAsyncTask().execute("http://murl.com/json/citywise.json");
try {
Bundle extras = getIntent().getExtras();
if (extras != null) {
value = extras.getString("new_variable_name");
Toast.makeText(TitleListActivity.this, value, Toast.LENGTH_LONG).show();
// not getting data city wise
cityWiseSearch();
}
else
{
// getting all data
adapter = new TitleListAdapter(TitleListActivity.this, R.layout.row, allArrayList);
listview.setAdapter(adapter);
}
} catch (Exception e) {
// TODO: handle exception
}
....
}
class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {
ProgressDialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Boolean doInBackground(String... urls) {
try {
....
JSONArray jarray = jsono.getJSONArray("cities");
for (int i = 0; i < jarray.length(); i++) {
JSONObject object = jarray.getJSONObject(i);
destination = new TitleList();
destination.setTitle(object.getString("address"));
allArrayList.add(destination);
......
return false;
}
protected void onPostExecute(Boolean result) {
dialog.cancel();
....
}
}
public void cityWiseSearch() {
for (int i = 0; i <allArrayList.size(); i++) {
destination = (TitleList) allArrayList.get(i);
String strStatuss = allArrayList.get(i).getCity();
if (strStatuss.equalsIgnoreCase(value)){
cityArrayList.add(destination);
}
}
adapter = new TitleListAdapter(TitleListActivity.this, R.layout.row, cityArrayList);
listview.setAdapter(adapter);
}
}
【问题讨论】:
-
如果这篇文章值得投反对票,那就投吧,但也要告诉我投反对票的原因......
-
请大家不要在没有说明原因的情况下投反对票,作为开发人员,您会遇到问题,因此我们都使用 stackoverflow。
-
首先检查这个“murl.com/json/citywise.json”是否返回了正确的响应,然后在绑定到arraylist之前检查你得到了什么数据。在日志上打印。也在使用之前 adapter.notifyDataSetChanged();清空 ArrayList。看到这个stackoverflow.com/questions/15422120/…,然后发布你的输出/错误日志。
-
谢谢@AmitabhSarkar 我很快就会回来...谢谢找到问题
-
@AmitabhSarkar 我刚刚错过了 destination.setCity(object.getString("city"));由于这没有得到城市名称:(
标签: java android json listview arraylist