고유 키와 부울 값을 사용하여 해시 맵을 만들었습니다. 키에서 나는 callog.calls 행의 고유 ID를 얻고 있습니다. 내가 원하는 것은 해당 실제 가치가있는 키가 전화의 최근 통화 목록에서 삭제된다는 것입니다. calllog.calls에서 선택한 행을 쿼리하고 삭제할 수있는 방법을 알아야합니다. 나 자신에 의해 시도했지만 코드는 사용자가 원하는 값을 얻을) (코드 :android의 최근 통화 목록에서 특정 연락처를 삭제하는 방법은 무엇입니까?
me.getKey을 완료
public void onclickhandler(View nn){
boolean state=false;
rl=(RelativeLayout) nn.getParent();
TextView tv=(TextView)rl.getChildAt(1);
cb=(CheckBox)rl.getChildAt(2);
if(cb.isChecked()){
state=true;
}
String s=tv.getText().toString();
hmp.put(s, state);
Log.i("value", tv.getText().toString());
System.out.println(state);
} //...........
//I want to delete the contacts on button click.here
//is the code for the listener..
done.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(CallLog.Calls.CONTENT_URI,
null, null, null, null);
Set keys = hmp.keySet();
Iterator it=keys.iterator();
while (it.hasNext()) {
String keyvalue=(String) it.next();
if(hmp.get(keyvalue).booleanValue()==true){
try{
cur.moveToPosition(Integer.parseInt(keyvalue));
String lookupKey = cur.getString(cur.getColumnIndex(
CallLog.Calls.CACHED_NAME));
Uri uri = Uri.withAppendedPath(
CallLog.Calls.CONTENT_URI, lookupKey);
System.out.println("The uri is " + uri.toString());
cr.delete(uri, null, null);
}
catch(Exception e)
{
System.out.println(e.getStackTrace());
}
}//if
}//while
}//on click
});
이 값을 데이터베이스에 저장하고있는 중입니까? 왜 내가 쿼리 할 것인지 묻는 이유는 무엇입니까? –
아니요 자체 데이터베이스를 만들지 않았습니다. android.provider.contacts db에서 삭제하고 싶습니다. –
당신은 편집 된 version.it가 실제로 무엇을 하려는지 명확히 알 수 있습니다 –