일단 그냥 기본적인 ArrayAdapter나 SimpleListAdapter를 이용하기 보다 전달하고자 하는 컬랙션 데이터 타입도 다르고 ListView에 표시되는 Layout도 바꿀 예정이라 테스트 할겸 리뷰 및 공부를 수행했다.
일단 인터넷에서 검색해서 볼수 있는 자료들의 내용 대부분이 ArrayList를 이용해서 HashMap의 있는 데이터를 ArrayList로 다시 저장하여 사용하는 내용들이었다.
그래서 여기 저기 내용들을 짜집기 해봤는데.. 뭐 다른 곳에서 얘기하는 것들과 그렇게 다르지 않은 코드를 만들게되었다.
다만 그들과 다른것 한가지는 소스가 쵸끔 더 깔끔해 보인다는 정도?!
소스 파일
package com.test.Adapter; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; public class HashAdapter extends Activity { /** Called when the activity is first created. */ HashMapmain.xmlmap = new HashMap (); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); map.put(1, "Kim"); map.put(2, "Jang"); map.put(3, "Lee"); map.put(4, "Park"); map.put(5, "Min"); ListView roomListView = (ListView)findViewById(R.id.listView1); roomListView.setAdapter(new HashListAdapter(this, map)); } public class HashListAdapter extends BaseAdapter { HashMap map; ArrayList ar; TextView txt_Names; Context context; public HashListAdapter(Context context, HashMap map) { this.context = context; this.map = map; this.ar = new ArrayList(map.keySet()); } @Override public int getCount() { // TODO Auto-generated method stub return this.map.size(); } @Override public String getItem(int arg0) { // TODO Auto-generated method stub return this.map.get(ar.get(arg0)); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View v = convertView; if(v == null) { LayoutInflater vi = getLayoutInflater(); v = vi.inflate(R.layout.inflatorlist, null); } txt_Names = (TextView) v.findViewById(R.id.Names); if(txt_Names != null) txt_Names.setText(getItem(position)); return v; } } }
inflatorlist.xml
'MISCELLANEOUSNESS' 카테고리의 다른 글
URL을 이용하여 파일 다운로드 하기. (0) | 2011.04.22 |
---|---|
지도로 보는 Android 개통 추이 동영상. (0) | 2011.02.26 |
android에서 햇던 실수. client에 jdbc connection 추가. (0) | 2011.02.22 |