안녕하세요 CURSOR ADAPTER 사용해서 주소록을 따로 만들고 있는데요
그 주소록에서 이름 옆에 보면 전화걸기 문자보내기 이런 버튼 있자나요
맨 옆에 삭제하기 버튼을 누르면 리스트에서 그 주소가 사라지게 하고 싶은데요
일단 리스트는 DB에 저장되어 있는 값을 뿌려서 보여주고 있습니다.
public class addphoneAdapter extends CursorAdapter {
public addphoneAdapter(Context context, Cursor c) {
super(context, c);
}
@Override
public void bindView(View view, final Context context, final Cursor cursor) {
String strID = cursor.getString(0);
final TextView name = (TextView) view.findViewById(R.id.name);
final TextView phone = (TextView) view.findViewById(R.id.phonenum);
final Context t = context;
// image.setImageResource(R.drawable.ic_launcher);
name.setText("이름 : " + cursor.getString(cursor.getColumnIndex("name")));
phone.setText("전화번호 : "
+ cursor.getString(cursor.getColumnIndex("phonenumber")));
ImageButton ib_call = (ImageButton) view.findViewById(R.id.button_call);
ImageButton ib_message = (ImageButton) view
.findViewById(R.id.button_message);
ImageButton ib_del = (ImageButton) view
.findViewById(R.id.button_del);
int position = cursor.getPosition();
ib_call.setTag(position);
ib_message.setTag(position);
ib_del.setTag(position);
ib_call.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int position= Integer.parseInt((v.getTag().toString()));
cursor.moveToPosition(position);
Intent i = new Intent(Intent.ACTION_CALL,
Uri.parse("tel: "
+ cursor.getString(cursor
.getColumnIndex("phonenumber"))));
context.startActivity(i);
}
});
ib_message.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int position= Integer.parseInt((v.getTag().toString()));
cursor.moveToPosition(position);
String data = (cursor.getString(cursor
.getColumnIndex("phonenumber")));
Intent i = new Intent(context, Send_sms.class);
i.putExtra("phonedata", data );
context.startActivity(i);
}
});
ib_del.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int position= Integer.parseInt((v.getTag().toString()));
cursor.moveToPosition(position);
}
});
}
protected void startActivity(Intent i) {
// TODO Auto-generated method stub
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.addphonenumlay, parent, false);
return v;
}
}
이런식으로 아답터를 구현했고 ib_del 버튼이 지우는 버튼입니다.
public class addphone extends Activity {
ListView list;
dbHelper dbHelper;
SQLiteDatabase db;
String sql;
Cursor cursor;
Button addbtn;
final static int Suchfriends =0;
final static int Inputfriends =1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.friendsadd);
dbHelper = new dbHelper(this);
try{
db = dbHelper.getWritableDatabase();
} catch (SQLiteException ex){
db = dbHelper.getReadableDatabase();
}
//db사용하겠다
sql = "SELECT * FROM friends;";
cursor = db.rawQuery(sql, null);
list = (ListView)findViewById(R.id.list);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
cursor.moveToPosition(position);
String str = cursor.getString(cursor.getColumnIndex("name"));
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
}
});
startManagingCursor(cursor);
addphoneAdapter dbAdapter = new addphoneAdapter(this, cursor);
list.setAdapter(dbAdapter);
//db.close();
// cursor.close();
addbtn = (Button)findViewById(R.id.addfriends);
addbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
this.DialogSelectOption();
}
요긴 뿌려주는 엑티비티고, 필요한 부분인듯한곳만 가져왔습니다.
인터넷 뒤져보니까 array 배열식으로 주던데
저는 일단 배열로 뭘 한건 없는거 같아서 ...
위치는 대충 다른 버튼처럼 잡아주면 될거같은데
db에서 지우고 리스트에서도 지우는 방법을 모르겠습니다.
답변 부탁드릴께요