Presentation is loading. Please wait.

Presentation is loading. Please wait.

UNIT 11 로봇 전화번호부 3/4 로봇 SW 콘텐츠 교육원 조용수.

Similar presentations


Presentation on theme: "UNIT 11 로봇 전화번호부 3/4 로봇 SW 콘텐츠 교육원 조용수."— Presentation transcript:

1 UNIT 11 로봇 전화번호부 3/4 로봇 SW 콘텐츠 교육원 조용수

2 학습 목표 Custom Adapter를 사용한다. Item View 의 재사용.

3 미션

4 리스트 뷰 : 사용자 데이터 Class private class PhoneInfo { int icon; String name;
String phone; PhoneInfo(int icon, String name, String phone) this.icon = icon; this.name = name; this.phone = phone; }

5 리스트 뷰 : 사용자 데이터 초기화 public class MainActivity extends Activity {
ListView listView; private ArrayList<PhoneInfo> phones = new ArrayList<PhoneInfo>(); ArrayAdapter<String> arrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView)findViewById(R.id.listView); phones = new ArrayList<PhoneInfo>(); phones.add(new PhoneInfo(R.drawable.boy, "갑돌이", " ")); phones.add(new PhoneInfo(R.drawable.boy, "갑순이", " "));

6 Custom Adapter 구조 private class PhoneListAdapter extends ArrayAdapter<PhoneInfo> { LayoutInflater inflater; Context context; PhoneListAdapter(Context context, ArrayList<PhoneInfo> list) super(context, 0, list); this.context = context; inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) { return super.getView(position, convertView, parent);

7 Custom Adapter 구조 getView : List Item View 를 반환하는 Method
convertView : 데이터를 표시할 View Position : View 에 표시 할 데이터 위치 private class PhoneListAdapter extends ArrayAdapter<PhoneInfo> { @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = inflater.inflate(R.layout.listitem, null); return convertView; }

8 Custom Adapter 구조 private class PhoneListAdapter extends ArrayAdapter<PhoneInfo> { @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = inflater.inflate(R.layout.listitem, null); ImageView ivPhoto = (ImageView)convertView.findViewById(R.id.ivProfile); ImageView ivPhone = (ImageView)convertView.findViewById(R.id.ivPhone); TextView tvName = (TextView)convertView.findViewById(R.id.tvText1); TextView tvPhone = (TextView)convertView.findViewById(R.id.tvText0); return convertView; }

9 Custom Adapter 구조 private class PhoneListAdapter extends ArrayAdapter<PhoneInfo> { @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = inflater.inflate(R.layout.listitem, null); ImageView ivPhoto = (ImageView)convertView.findViewById(R.id.ivProfile); ImageView ivPhone = (ImageView)convertView.findViewById(R.id.ivPhone); TextView tvName = (TextView)convertView.findViewById(R.id.tvText1); TextView tvPhone = (TextView)convertView.findViewById(R.id.tvText0); PhoneInfo info = (PhoneInfo)getItem(position); tvName.setText(info.name); tvPhone.setText(info.phone); ivPhoto.setImageResource(info.icon); return convertView; }

10 리스트 뷰 : 아답터 적용 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView)findViewById(R.id.listView); phones = new ArrayList<PhoneInfo>(); phones.add(new PhoneInfo(R.drawable.girl1, "갑돌이", " ")); phones.add(new PhoneInfo(R.drawable.girl2, "갑순이", " ")); PhoneListAdapter phoneListAdapter = new PhoneListAdapter(this, phones); listView.setAdapter(phoneListAdapter); phoneListAdapter.notifyDataSetChanged();

11 리스트 뷰

12 너무 많은 아이템 @Override protected void onCreate(Bundle savedInstanceState) { for(int i = 0; i < 100; ++i) { phones.add(new PhoneInfo(R.drawable.boy, "갑돌이" + i, " ")); phones.add(new PhoneInfo(R.drawable.boy, "갑순이" + i, " ")); }

13 Custom Adapter 구조 getView : List Item View 의 재사용
private class PhoneListAdapter extends ArrayAdapter<PhoneInfo> { @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null) { convertView = inflater.inflate(R.layout.listitem, null); } return convertView;

14 Custom Adapter 구조 View Widget 할당
private class PhoneListAdapter extends ArrayAdapter<PhoneInfo> { @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null) { convertView = inflater.inflate(R.layout.listitem, null); } ImageView ivPhoto = (ImageView)convertView.findViewById(R.id.ivProfile); ImageView ivPhone = (ImageView)convertView.findViewById(R.id.ivPhone); TextView tvName = (TextView)convertView.findViewById(R.id.tvText1); TextView tvPhone = (TextView)convertView.findViewById(R.id.tvText0); return convertView;

15 Custom Adapter 구조 데이터 표시
private class PhoneListAdapter extends ArrayAdapter<PhoneInfo> { @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null) { convertView = inflater.inflate(R.layout.listitem, null); } ImageView ivPhoto = (ImageView)convertView.findViewById(R.id.ivProfile); ImageView ivPhone = (ImageView)convertView.findViewById(R.id.ivPhone); TextView tvName = (TextView)convertView.findViewById(R.id.tvText1); TextView tvPhone = (TextView)convertView.findViewById(R.id.tvText0); PhoneInfo info = (PhoneInfo)getItem(position); tvName.setText(info.name); tvPhone.setText(info.phone); ivPhoto.setImageResource(info.icon); return convertView;


Download ppt "UNIT 11 로봇 전화번호부 3/4 로봇 SW 콘텐츠 교육원 조용수."

Similar presentations


Ads by Google