尝试从sqlite数据库中删除String

时间:2014-01-27 17:30:34

标签: android sqlite

我尝试从数据库中删除phoneNumber但它无法正常工作。我该如何删除phoneNumber 来自数据库。我搜索了以前的帖子,但我发现代码在这里的相同解决方案。但没有工作

//删除特定号码

public boolean deleteNumber(String phoneNumber)
{
    return db.delete(DATABASE_TABLE, KEY_PHONENUMBER + "=" + phoneNumber, null) > 0;
}

//列表视图代码在这里

//在ListView中显示数字     setListAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,listOfPhoneNumber));

listView.setLongClickable(true);
listView.setOnItemLongClickListener(new OnItemLongClickListener() {

    // On Long Click Listener  
    @Override
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long id) {
        Toast.makeText(ViewNumber.this,listView.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show();

        numberToDelete = listView.getItemAtPosition(position).toString();

        // PopUp Menu
        PopupMenu popupMenu = new PopupMenu(ViewNumber.this, view);
        getMenuInflater().inflate(R.menu.popupmenu_viewnumber, popupMenu.getMenu());
        popupMenu.show();

        popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {


            @Override
              public boolean onMenuItemClick(MenuItem item) {

                if (item.getItemId() == R.id.delete) {
                    Toast.makeText(ViewNumber.this, "Deleted", Toast.LENGTH_SHORT).show();

                    // deleting number from database
                    db.open();
                    boolean check = db.deleteNumber(numberToDelete);
                    db.close();

                    if(check == true)
                    {
                        Log.d("NUMBER del from db", numberToDelete);
                    }

                    Log.d("numberToDelete", "" +numberToDelete);
                }

                if (item.getItemId() == R.id.edit) {
                    Toast.makeText(ViewNumber.this, "Edit", Toast.LENGTH_SHORT).show();
                }

                 return false;
              }
            });

        return false;
        }
    });
}

提前致谢

1 个答案:

答案 0 :(得分:0)

public boolean deleteNumber(String phoneNumber)
{
    if(db.delete(DATABASE_TABLE, KEY_PHONENUMBER + "=?", new String[] {phoneNumber})>0){
      return true;
    }else{
     return false;
    }
}

更多信息SQLiteDatabase Delete

public int delete(String table,String whereClause,String [] whereArgs) 在API级别1中添加 删除数据库中行的便捷方法。

  

参数

     

table 要从

中删除的表格      

whereClause 删除时要应用的可选WHERE子句。传递null将删除所有行。

     

whereArgs 您可以在where子句中包含?s,它将被whereArgs中的值替换。值将绑定为   字符串。

     

返回传入whereClause时受影响的行数,否则返回0。删除所有行并获得计数通过“1”作为   whereClause。