【发布时间】:2015-06-03 12:54:33
【问题描述】:
我正在使用 ArrayList 将 JSON 数据解析到 ListView 中,现在我想知道如何在将 ArrayList 中的 remove duplicate 条目填充到 ListView 之前。
这是我的 JSON:
{
"data": [
{
"city": "Delhi"
},
{
"city": "Mumbai"
},
{
"city": "Delhi"
},
{
"city": "Mumbai"
}
]
}
MainActivity.java
public class MainActivity extends Activity {
ArrayList<Destination> destinationArrayList;
MainAdapter adapter;
EditText editText;
Destination destination;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editLocation);
destinationArrayList = new ArrayList<Destination>();
new JSONAsyncTask().execute("my api link");
ListView listview = (ListView)findViewById(R.id.list);
adapter = new MainAdapter(getApplicationContext(), R.layout.row, destinationArrayList);
listview.setAdapter(adapter);
}
class JSONAsyncTask extends AsyncTask<String, Void, Boolean> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Boolean doInBackground(String... urls) {
try {
....
if (status == 200) {
HttpEntity entity = response.getEntity();
String data = EntityUtils.toString(entity);
JSONObject jsono = new JSONObject(data);
JSONArray jarray = jsono.getJSONArray("data");
for (int i = 0; i < jarray.length(); i++) {
JSONObject object = jarray.getJSONObject(i);
destination = new Destination();
destination.setCity(object.getString("city"));
destinationArrayList.add(destination);
}
return true;
}
......
return false;
}
protected void onPostExecute(Boolean result) {
adapter.notifyDataSetChanged();
}
}
}
【问题讨论】:
-
你为什么不使用地图呢?
-
@DhavalPatel 我想更改我熟悉的现有代码
-
将你的数组列表放入一个集合中,它将删除所有重复的元素..然后再次创建一个数组列表
-
@Akash 你能告诉我路吗?
-
使用 TreeMap - 没有重复!
标签: java android json arraylist