티스토리 뷰

Language/Android

[Android] 리스트뷰

Mr.SIM 2013. 4. 15. 00:04

리스트뷰란? 항목들을 수직으로 펼쳐서 보여주는 위젯


안드로이드에서 제공하는 항목들

 리소스 ID  설명

 Simple_list_item_1

 하나의 텍스트 뷰로 구성된 레이아웃

 Simple_list_item_2

 두 개의 텍스트 뷰로 구성된 레이아웃
 Simple_list_item_checked  오른쪽에 체크 표시가 나타난다.
 Simple_list_item_single_choice  오른쪽에 라디오 버튼이 나타난다.
 Simple_lsit_item_multiple_choice  오른쪽에 체크 버튼이 나타난다.

위의 기본 레이아웃은 보기 좋지 않다. 항목마다 원하는 위젯을 추가하기위해서는 다음 방법을 사용하자.


MainActivity.java

 public class MainActivity extends ListActivity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		ArrayList<Drink> Drinks_Array = new ArrayList<Drink>();		
                Drinks_Array.add(new Drink("CAS..."));
		Drinks_Array.add(new Drink("HI..."));

		myDrinkAdapter adapter = new myDrinkAdapter(this, R.layout.row, Drinks_Array);
		setListAdapter(adapter);

	}



	private class myDrinkAdapter extends ArrayAdapter<Drink> {
		private ArrayList<Drink> items;
		private int layout;

		public myDrinkAdapter(Context context, int textViewResourceId, ArrayList<Drink> items) {
			super(context, textViewResourceId, items);

			this.items = items;
			layout = textViewResourceId;

		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {

			if (convertView == null) {
				LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
				convertView = vi.inflate(layout, null);
			}

			Drink p = items.get(position);
			TextView drink_name = (TextView) convertView.findViewById(R.id.name);

			drink_name.setText(p.getName());
			return convertView;
		}
	}

	class Drink {
		private String name;

		public Drink(String name) {
			this.name = name;
		}

		public String getName() {
			return name;
		}
	}
}


activity_main.xml




    

        
        
    



row.xml



    
    

위 예시를 실행하면 리스트항목이 나타날 것이다. 이때, 한 리스트항목에 이미지나, 텍스트를 더 추가하고싶다면, row.xml을 수정하고, Drink class에 변수를 더 추가하면 리스트 한칸에 여러 항목을 배치시킬 수 있다.

TIP) ArrayAdapter말고도 BaseAdapter, SimpleCursorAdapter, ... 등 다양한 방법으로 리스트뷰를 자신이 원하는 스타일로 바꿀 수 있다.

'Language > Android' 카테고리의 다른 글

[Android] 인터넷상태확인  (0) 2013.04.16
[Android] 해상도구하기  (0) 2013.04.16
[Android] 로딩화면구현하기  (0) 2013.04.16
[Android] SharedPreference란  (2) 2013.04.16
[Android] 외부폰트적용  (0) 2013.04.14
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday