如何删除android中最近通话列表中的特定联系人?

时间:2011-11-18 13:59:23

标签: android sqlite calllog

我创建了一个包含唯一键及其布尔值的哈希映射。在密钥中,我得到callog.calls的行唯一ID。我想要的是那些具有相应真值的密钥将从手机中的最近通话清单中删除。我需要知道如何从calllog.calls查询和删除选定的行。我自己尝试但代码不能正常工作

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
});

1 个答案:

答案 0 :(得分:0)

for(Map.Entry<String, String> me:nameofHashMap.entrySet())

for(Entry<String, String> me:nameofHashMap.keySet())

使用此语句获取所需的值并完成代码:)

me.getKey();将为您提供所需的所有价值。 “me”是您正在创建的对象的名称,为其指定任何名称并调用该对象。