简体   繁体   中英

HashMap ArrayList show same value two times in AutoCompleteTextView suggestion

My Code:

// Reading all contacts from database
    List<BNICorporateBean> contacts = db.getAllInfo();
     // Each row in the list stores country name, currency and email
    ArrayList<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();
        for (BNICorporateBean cn : contacts) 
        {   
            if(!memId.trim().equalsIgnoreCase(cn.getBNIMemID().trim()))
            {
                 HashMap<String, String> hm = new HashMap<String,String>();
                 hm.put("name", cn.getMemName());
                 hm.put("email", cn.getMemEmail() );
                 hm.put("mem_id", cn.getBNIMemID());
                 Log.d("Result", cn._MemName+"\n"+cn._MemEmail+"\n"+cn._BNIMemID);                               
                 aList.add(hm);
            }
             memId= cn.getBNIMemID();
            //infoArry.add(cn); 

        }

    // Keys used in Hashmap
    //String[] from = { "name","email"};
    // Ids of views in listview_layout
    //int[] to = { R.id.mem_name,R.id.mem_email};

    // Instantiating an adapter to store each items
    // R.layout.listview_layout defines the layout of each item
    SimpleAdapter adapter = new SimpleAdapter(LoginActivity.this, aList, R.layout.list_member, new String[] { "name","email"},
            new int[]{ R.id.mem_name,R.id.mem_email});
    /** Setting the adapter to the listView */
    autoComplete.setAdapter(adapter);        

Takes value from database and my log text show that it returns single value, but don't know why it shows same value two times in list suggestion . Note: for some values it shows once.

I have also print my list and gives perfect result no duplicate values

for(int k=0;k<aList.size();k++)
{
System.out.println(""+aList.get(k));
}   

Use it.This may help you

do{
     HashMap<String, String> hm = new HashMap<String,String>();
     hm.put("name", cn.getMemName());
     hm.put("email", cn.getMemEmail() );
     hm.put("mem_id", cn.getBNIMemID());
     Log.d("Result", cn._MemName+"\n"+cn._MemEmail+"  \n"+cn._BNIMemID);                               
     aList.add(hm);
     memId= cn.getBNIMemID();
}while(!memId.trim().equalsIgnoreCase(cn.getBNIMemID().trim()));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM