주소록을 불러오는 것만 했을 때는 문제없이 실행이 되는데
옆에 체크박스 생성을 하려고 하는데
어플리케이션 실행이 안됩니다ㅠㅠ
뭐가 문제일까요?ㅠ
//ListActivity 코드
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.TextView;
import com.eos.addressbook.R;
import com.eos.addressbook.data.Address;
public class ListAdapter extends ArrayAdapter<Address> {
private LayoutInflater mInflater;
/*private TextView name, phoneNum;
private CheckBox check;*/
public ListAdapter(Context context, ArrayList<Address> object) {
super(context, 0, object);
// TODO Auto-generated constructor stub
mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
private class ViewHolder {
TextView name, phoneNum;
CheckBox check;
}
@Override
public View getView(int position, View v, ViewGroup parent) {
View view = null;
ViewHolder holder = null;
if (v == null) {
view = mInflater.inflate(R.layout.custom_view, null);
holder = new ViewHolder();
holder.name = (TextView) view.findViewById(R.id.Name);
holder.phoneNum = (TextView) view.findViewById(R.id.PhoneNum);
holder.check = (CheckBox) view.findViewById(R.id.checkbox);
view.setTag(holder);
} else {
view = v;
holder = (ViewHolder)v.getTag();
}
final Address data = this.getItem(position);
holder.check.setId(position);
if (data != null) {
holder.name.setText(data.getName());
holder.phoneNum.setText(data.getPhoneNum());
holder.check.setChecked(((ListView)parent).isItemChecked(position));
holder.check.setFocusable(false);
holder.check.setClickable(false);
holder.check.setChecked(data.getCheck());
if (data.getCheck()) {
holder.check.toggle();
}
}
// TODO Auto-generated method stub
return view;
}
}
//ListAdapter 코드
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.Toast;
import com.eos.addressbook.adapter.ListAdapter;
import com.eos.addressbook.data.Address;
public class ListActivity extends Activity {
private ListView dataList;
private ArrayList<Address> data;
private ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
data = new ArrayList<Address>();
dataList = (ListView) findViewById(R.id.dataList);
ContentResolver cr = getContentResolver();
Cursor c = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null,
null, null);
while (c.moveToNext()) {
Address tmp = new Address();
String hasPhoneNum;
String id = c.getString(c
.getColumnIndex(ContactsContract.Contacts._ID));
tmp.setName(c.getString(c
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)));
hasPhoneNum = c
.getString(c
.getColumnIndexOrThrow(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhoneNum.equals("1")) {
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "="
+ id, null, null);
while (phones.moveToNext()) {
tmp.setPhoneNum(phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
}
phones.close();
tmp.setCheck(false);
data.add(tmp);
}
}
adapter = new ListAdapter(this, data);
dataList.setAdapter(adapter);
dataList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
/*dataList.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3){
CheckBox chk = (CheckBox)v.findViewById(R.id.Check);
Address chk = (Address)arg0.getAdapter().getItem(position);
//data.get(position).setCheck();
if(data.get(position).getName().equals(chk.getName())){
Toast.makeText(getApplicationContext(), "equals", Toast.LENGTH_LONG).show();
}
data.get(position).setCheck(true);
//chk.toggle();
}
});*/
}
}
}
}

