Thanks Justin,

I'll give that a go.

graham

On Tue, Apr 3, 2012 at 9:56 PM, Justin Anderson <[email protected]>wrote:

> When you need to update the adapter, iterate over your hash map and insert
> all the data into a list.  Maybe do something like this:
>
> 1) Create a DataPairs class:
>
> public class DataPairs
> {
>      public String _key;
>      public String _value;
>
>      public DataPairs(String key, String val)
>      {
>           _key = key;
>          _value = val;
>      }
> }
>
> 2) Create a new list of DataPairs objects, iterate over your hash map, and
> insert the data into your list
> 3) Update your adapter with the new list of data and call
> notifyDataSetChanged()
>
>
> Thanks,
> Justin Anderson
> MagouyaWare Developer
> http://sites.google.com/site/magouyaware
>
>
> On Tue, Apr 3, 2012 at 1:46 PM, Graham Bright <[email protected]>wrote:
>
>> 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
>>
>
>  --
> 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

Reply via email to