1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class PersonAdapter extends ArrayAdapter<Person>{
 
    //BaseAdapter가 리스트뷰의 어뎁터가 되기 위한 기본 부모클래스이지만 
    //관리하는 데이터가 배열에 특화되있는 어레이어뎁터를 상속받는게 작업이 쉽다.
    
    private Context context;
    private int resource;
    private List<Person> personList;
    
    public PersonAdapter(Context context, int resource, List<Person> objects) {
        super(context, resource, objects);
        // TODO Auto-generated constructor stub
        this.context = context;
        this.resource = resource;
        this.personList = objects;
    }
        
}
cs


1
2
 //BaseAdapter는 추상클래스, 어뎁터로서의 동작에 대한 템플릿은 구현되 있지만
 //getView, getItem, getItemPosition등등.. 핵심동작은 사용자가 상속받아서 정의해야됨
cs

ArrayAdapter는 바로 사용가능한 완성폼

getView만 우리 뷰에 맞게 재정의하면됨

1
2
3
4
5
6
7
8
9
10
11
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
//        return super.getView(position, convertView, parent);
        if(convertView == null)
        {
            LayoutInflater inflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(resource, parent, false);
        }
        return convertView;
    }
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        callIv.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + person.getPhoneNum()));
                //<uses-permission android:name="android.permission.CALL_PHONE"/>
                //manifest에서 권한추가
                context.startActivity(intent);   전화걸기
            }
        });
        smsIv.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {                 문자 창으로 가기
                // TODO Auto-generated method stub
                Intent sendIntent = new Intent(Intent.ACTION_VIEW);
                sendIntent.putExtra("address", person.getPhoneNum());//받는사람
                sendIntent.setType("vnd.android-dir/mms-sms");
                context.startActivity(sendIntent);
            }
        });
cs


' IOT 기반 응용 SW과정 > Android, Arduino' 카테고리의 다른 글

Day98 안드로이드 db Select문  (0) 2016.08.05
Day97  (0) 2016.08.04
Day94 안드로이드 listview  (0) 2016.08.02
Day93 AlertDialog  (0) 2016.07.29
Day92  (0) 2016.07.28

+ Recent posts