rafaxplayer
19/06/13, 06:48:53
buenas compañero , estoy trasteando con hashmap para crear unas listas y aprender de que va , ya que nunca lo había utilizado , al leer sobre ello no veo dificultad , pero en una practica sencilla como cargar una lista con hashmaps no consigo que función , siempre me sale en blanco , os dejo el codigo para ver si me sacáis de dudas :oh:
MainActivity:
public class MainActivity extends Activity {
ListView lst;
ListAdapter adp;
static final String KEY_ID = "id";
static final String KEY_NAME = "Name";
static final String KEY_TLF = "TLF";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<HashMap<String, String>> arr = new ArrayList<HashMap<String,String>>();
lst=(ListView)findViewById(R.id.listView1);
for(int i=0; i < 100; i++){
HashMap<String,String> h = new HashMap<String,String>();
h.put(KEY_ID, String.valueOf(i));
h.put(KEY_NAME, String.valueOf("nombre"+i));
h.put(KEY_TLF, String.valueOf(i*123457));
arr.add(h);
}
adp = new ListAdapter(this,arr);
//Log.d("count",String.valueOf(arr.size()));
lst.setAdapter(adp);
}
Y listadapter class:
public class ListAdapter extends BaseAdapter {
ArrayList<HashMap<String,String>> arr;
Context context;
LayoutInflater inflater;
public ListAdapter(Context con, ArrayList<HashMap<String,String>> mp){
this.context = con;
this.arr = mp;
this.inflater = (LayoutInflater)con.getSystemService(Context.LAYOU T_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return arr.size();
}
@Override
public HashMap<String,String> getItem(int position) {
// TODO Auto-generated method stub
return arr.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if(convertView == null)
vi = inflater.inflate(R.layout.items, null);
TextView name = (TextView)vi.findViewById(R.id.textView1);
TextView tlf = (TextView)vi.findViewById(R.id.textView2);
TextView id = (TextView)vi.findViewById(R.id.textView3);
HashMap<String,String> cont = new HashMap<String,String>();
cont = arr.get(position);
name.setText(cont.get(MainActivity.KEY_NAME));
tlf.setText(cont.get(MainActivity.KEY_TLF));
id.setText(cont.get(MainActivity.KEY_ID));
//Log.d("Name",cont.get(MainActivity.KEY_NAME));
return vi;
}
MainActivity:
public class MainActivity extends Activity {
ListView lst;
ListAdapter adp;
static final String KEY_ID = "id";
static final String KEY_NAME = "Name";
static final String KEY_TLF = "TLF";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<HashMap<String, String>> arr = new ArrayList<HashMap<String,String>>();
lst=(ListView)findViewById(R.id.listView1);
for(int i=0; i < 100; i++){
HashMap<String,String> h = new HashMap<String,String>();
h.put(KEY_ID, String.valueOf(i));
h.put(KEY_NAME, String.valueOf("nombre"+i));
h.put(KEY_TLF, String.valueOf(i*123457));
arr.add(h);
}
adp = new ListAdapter(this,arr);
//Log.d("count",String.valueOf(arr.size()));
lst.setAdapter(adp);
}
Y listadapter class:
public class ListAdapter extends BaseAdapter {
ArrayList<HashMap<String,String>> arr;
Context context;
LayoutInflater inflater;
public ListAdapter(Context con, ArrayList<HashMap<String,String>> mp){
this.context = con;
this.arr = mp;
this.inflater = (LayoutInflater)con.getSystemService(Context.LAYOU T_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return arr.size();
}
@Override
public HashMap<String,String> getItem(int position) {
// TODO Auto-generated method stub
return arr.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if(convertView == null)
vi = inflater.inflate(R.layout.items, null);
TextView name = (TextView)vi.findViewById(R.id.textView1);
TextView tlf = (TextView)vi.findViewById(R.id.textView2);
TextView id = (TextView)vi.findViewById(R.id.textView3);
HashMap<String,String> cont = new HashMap<String,String>();
cont = arr.get(position);
name.setText(cont.get(MainActivity.KEY_NAME));
tlf.setText(cont.get(MainActivity.KEY_TLF));
id.setText(cont.get(MainActivity.KEY_ID));
//Log.d("Name",cont.get(MainActivity.KEY_NAME));
return vi;
}