상세 컨텐츠

본문 제목

[Android]베이스어댑터

Android 개발

by mobile 2013. 4. 7. 01:35

본문

반응형

화면에 출력해야 할 레이아웃이 ListView 나 TextView 처럼 정형화된 포맷이 아니라면 Adapter 인터페이스를 직접 구현하여 화면상에 출력할 레이아웃을 만들어 주어야 한다.


화면상에 출력할 View를 직접 제작하는 방법은 BaseAdapter 추상 클래스를 상속받아 작업하게 된다.


http://developer.android.com/reference/android/widget/BaseAdapter.html


베이스아댑터를 사용하여 화면에 출력하기 위해 두 종류의 클래스를 생성한다.

1) 리스트액티비티 클래스를 상속받는 클래스

2) 베이스아댑터 클래스를 상속받는 클래스


import android.app.ListActivity;

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.TextView;


public class ExBaseAdapter extends ListActivity {


@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setListAdapter(new MyListAdapter(this));

}


private String[] mStrings = { "A", "B", "C", "D", "E", "F", "G", "H", "I",

"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",

"W", "X", "Y", "Z" };


private class MyListAdapter extends BaseAdapter {

private Context mContext;

TextView tv;


public MyListAdapter(Context context) {

mContext = context;

}


@Override

public boolean areAllItemsEnabled() {

// TODO Auto-generated method stub

// return super.areAllItemsEnabled();

return false;

}


@Override

public int getCount() {

// TODO Auto-generated method stub

// return 0;

return mStrings.length;

}


@Override

public boolean isEnabled(int position) {

// TODO Auto-generated method stub

// return super.isEnabled(position);

return !mStrings[position].startsWith("-");

}


@Override

public boolean hasStableIds() {

// TODO Auto-generated method stub

// return super.hasStableIds();

return true;

}


@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return position;

}


@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

if (convertView == null) {

tv = (TextView) LayoutInflater.from(mContext).inflate(

android.R.layout.simple_expandable_list_item_1, parent,

false);

} else {

tv = (TextView) convertView;

}

tv.setText(mStrings[position]);

return tv;

}

}

}


[결과]


반응형

'Android 개발' 카테고리의 다른 글

[Android]그리드뷰  (0) 2013.04.07
[Android]스피너  (0) 2013.04.07
[Android]리스트액티비티와 리스트 뷰  (0) 2013.04.07
[Android] 아댑터와 아댑터 뷰  (0) 2013.04.06
[Android]자바 콜렉션  (0) 2013.04.06

관련글 더보기

댓글 영역