-1

Json から応答があり、順序付けされた名前で結果を表示する必要があります。ハッシュマップを実装した後、アルファベット順に並べ替えられていないことに気付きました。どうすればよいですか?

public ArrayList<HashMap<String, String>> contactList= new ArrayList<HashMap<String, String>>();

Collections.sort(contactList, new Comparator<String>() {
        @Override
        public int compare(String s1, String s2) {
            return s1.compareToIgnoreCase(s2);
        }
    });

コード:

protected void onPostExecute(Void result) {
    super.onPostExecute(result);
    if (pDialog.isShowing())
        pDialog.dismiss();
    SimpleAdapter adapter = new SimpleAdapter(
            HomeActivity.this, contactList,
            R.layout.list_item, new String[] {TAG_FNAME}, new int[] {R.id.textView1});
    setListAdapter(adapter);
    adapter.notifyDataSetChanged();
    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent,
                View view, int position, long ids) {
            Intent i = new Intent(getApplicationContext(),
                    SingleListActivity.class);
            HashMap<String, String> contact =  contactList.get(position);
            i.putExtra("id", id);
            i.putExtra("firstName", firstname);
            i.putExtra("lastName", lastname);
            i.putExtra("headline", headline);
            i.putExtra("pictureUrl", pictureUrl);
            i.putExtra("url", url);
            startActivity(i);
        }
    });

これには、姓と名の両方が含まれています。

4

2 に答える 2

0

HashMap の ArrayList をソートするには、このコードを使用します。

Collections.sort(ArrayList,new Comparator<HashMap<String,String>>(){
public int compare(HashMap<String,String> mapping1,HashMap<String,String> mapping2){
    return mapping1.get("Name").compareTo(mapping2.get("Name"));

}

ほとんどの場合、HashMap は同じキーを持っているため、このコードを使用できます (「名前」をキーに変更します)。ArrayList を Arraylist 名に置き換えます。あなたの場合は contactList です。

お役に立てれば :)

于 2014-08-07T05:26:06.643 に答える
-1

「それぞれ複数のキーと値のペアを保持する HashMap の ArrayList をソートする方法」をチェックしている場合は、すでに説明されています。stackoverflow.com/questions/5369573 をご覧ください

「android-listview-display-as-alphabetic-order」をチェックしている場合は、このstackoverflowディスカッションをご覧くださいstackoverflow.com/questions/12559843

于 2014-08-07T05:42:46.580 に答える