Thanks Justin, Order is not important, as my end goal is to present to the user a simple list of values + keys. When the user longclicks on an item it will be deleted from the hash.
What would you suggest? graham On Tue, Apr 3, 2012 at 9:24 PM, Justin Anderson <[email protected]>wrote: > Keep in mind that HashMap does not have an order... ArrayAdapter does > everything based on a position value, which indicates an ordered collection > of some sort. > > Thanks, > Justin Anderson > MagouyaWare Developer > http://sites.google.com/site/magouyaware > > > On Tue, Apr 3, 2012 at 1:16 PM, Graham Bright <[email protected]>wrote: > >> Hi, >> >> I have a hashmap with key, value pairs example :- >> >> (msisdn,value) >> >> 43664xxxxxxx,2 >> 43665xxxxxxx,3 >> >> now I want to display this information in a ListView but I don't know >> how to feed the data to an ArrayAdapter. >> >> HERE IS MY ADAPTER, note I want to replace myList with data from the >> Hashmap a concatentated key+value. >> >> 1. Pass the above hashmap as an adapter, replacing myList with the >> hashmap >> >> adapter=new >> ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myList); >> setListAdapter(adapter); >> >> Note this is what I have without using the hashmap >> >> THANKS IN ADVANCE >> >> >> package listmodified.org; >> >> import java.util.Arrays; >> import java.util.ArrayList; >> import java.util.HashMap; >> import java.util.List; >> import java.util.Map; >> >> import android.app.ListActivity; >> import android.os.Bundle; >> import android.os.Handler; >> import android.os.Message; >> import android.view.View; >> import android.widget.AdapterView; >> import android.widget.ArrayAdapter; >> import android.widget.ListView; >> import android.widget.TextView; >> import android.widget.AdapterView.OnItemLongClickListener; >> import android.view.GestureDetector.OnGestureListener; >> import android.view.GestureDetector; >> import android.view.MotionEvent; >> import android.widget.Toast; >> >> >> >> >> public class listmodified extends ListActivity implements >> OnGestureListener { >> public ArrayList<String> myList = new >> ArrayList<String>(Arrays.asList(items)); >> private TextView selection; // MAIN.xml >> public ArrayAdapter<String> adapter; // my adapter >> public OnItemLongClickListener itemDelListener; >> private GestureDetector gestureScanner; >> public int longClickedItem = 0; //check if longClick is selected >> or >> not >> private String itemSelected; // for delete function >> private static final byte UPDATE_LIST = 100; >> public AdapterView<?> parent; //used by OnLitemLongClickListener >> public int position; >> >> //tie items to an array list called myList >> public static String[] items={"lorem", "ipsum", "dolor", >> "sit", "amet", >> "consectetuer", "adipiscing", "elit", "morbi", "vel", >> "ligula", "vitae", "arcu", "aliquet", "mollis", >> "etiam", "vel", "erat", "placerat", "ante", >> "porttitor", "sodales", "pellentesque", "augue", "purus"}; >> >> >> >> >> >> >> >> >> >> @Override >> public void onCreate(Bundle icicle) { >> super.onCreate(icicle); >> >> OnItemLongClickListener itemDelListener = new >> OnItemLongClickListener(){ >> >> //@Override >> public boolean onItemLongClick(AdapterView<?> parent, View >> arg1, >> int position, long arg3) { >> // TODO Auto-generated method stub >> >> itemSelected=parent.getItemAtPosition(position).toString(); >> adapter.remove(itemSelected); >> Toast.makeText(listmodified.this, "position is:" + >> position, >> Toast.LENGTH_SHORT).show(); >> myList.remove(this); //remove the current object >> , position throws >> an exception >> adapter.notifyDataSetChanged(); >> >> >> return false; >> }}; >> >> setContentView(R.layout.main); >> >> >> //DEFINE MY OWN VIEW TIE TO ARRAYLIST myList WHICH CONTAINS >> STRINGS >> adapter=new >> ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myList); >> setListAdapter(adapter); >> >> //A VIEW OF THE LIST NECESSARY FOR DELETION >> >> selection=(TextView)findViewById(R.id.selection); >> >> >> // PART OF LONG CLICK SELECTED CODE >> // CALLS IMPLEMENTED METHODS - detect gestures checking my list >> items >> gestureScanner = new GestureDetector(this); >> getListView().setOnTouchListener(new View.OnTouchListener() { >> @Override >> public boolean onTouch(View v, MotionEvent event) { >> return gestureScanner.onTouchEvent(event); >> } >> }); >> >> //UPDATE VIEW DELETE WHEN ONLONG CLICK IS PRESSED >> getListView().setOnItemLongClickListener(itemDelListener); >> >> } >> >> >> //LIST ITEM PRESS CHECKING >> public void onListItemClick(ListView parent, View v, >> int position, long id){ >> selection.setText(myList.get(position)); >> //check to see if LONGCLICK IS PRESSED >> if (longClickedItem != -1) { >> Toast.makeText(listmodified.this, "A short click >> detected", >> Toast.LENGTH_SHORT).show(); >> >> } >> longClickedItem=0; >> } >> >> //IMPLEMENTED BY GESTURE >> @Override >> public boolean onDown(MotionEvent arg0) { >> // TODO Auto-generated method stub >> return false; >> } >> >> >> @Override >> public boolean onFling(MotionEvent e1, MotionEvent e2, float >> velocityX, >> float velocityY) { >> // TODO Auto-generated method stub >> return false; >> } >> >> >> //CHECKS ONLONGPRESS EVENTS SET LONG PRESS TO -1, >> //COOL I CAN USE THIS TO SEE IF A LONG CLICK WAS SELECTED LATER ON >> >> @Override >> public void onLongPress(MotionEvent e) { >> // TODO Auto-generated method stub >> Toast.makeText(listmodified.this, "A long click detected", >> Toast.LENGTH_SHORT).show(); >> >> >> if (e.getAction()==MotionEvent.ACTION_DOWN) >> { >> >> longClickedItem = -1; >> >> } >> >> } >> >> >> @Override >> public boolean onScroll(MotionEvent e1, MotionEvent e2, float >> distanceX, >> float distanceY) { >> // TODO Auto-generated method stub >> return false; >> } >> >> >> @Override >> public void onShowPress(MotionEvent e) { >> // TODO Auto-generated method stub >> >> } >> >> >> @Override >> public boolean onSingleTapUp(MotionEvent e) { >> // TODO Auto-generated method stub >> return false; >> } >> private Handler updateListHandler = new Handler() { >> @Override >> public void handleMessage(Message msg) { >> switch (msg.what) { >> case UPDATE_LIST: >> int position = msg.arg1; >> myList.remove(position); >> adapter.notifyDataSetChanged(); >> Toast.makeText(listmodified.this, "OnSingleTapUp", >> Toast.LENGTH_SHORT).show(); >> break; >> >> } >> ; >> }; >> }; >> >> >> } >> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en > > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

