尝试从SQLite数据库中删除字符串 [英] try to delete String from sqlite database

查看:167
本文介绍了尝试从SQLite数据库中删除字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图删除数据库phoneNumber的,但它不工作。如何删除phoneNumber的
从数据库。我搜索previous职位,但我发现同样的解决方案的code是在这里。但不工作

//删除特定号码

 公共布尔deleteNumber(字符串phoneNumber的)
{
    返回db.delete(DATABASE_TABLE,KEY_PHONENUMBER +=+ phoneNumber的,NULL)> 0;
}

//列表视图code是这里

// ListView中显示号
    setListAdapter(新ArrayAdapter(这一点,android.R.layout.simple_list_item_1,listOfPhoneNumber));

  listView.setLongClickable(真);
listView.setOnItemLongClickListener(新OnItemLongClickListener(){    //在龙点击监听器
    @覆盖
    公共布尔onItemLongClick(适配器视图<>适配器视图,视图观点,INT位置,长的id){
        Toast.makeText(ViewNumber.this,listView.getItemAtPosition(位置)的ToString(),Toast.LENGTH_SHORT).show();        numberToDelete = listView.getItemAtPosition(位置)的ToString();        // 弹出菜单
        PopupMenu的弹出菜单=新的PopupMenu(ViewNumber.this,视图);
        。getMenuInflater()膨胀(R.menu.popupmenu_viewnumber,popupMenu.getMenu());
        popupMenu.show();        popupMenu.setOnMenuItemClickListener(新PopupMenu.OnMenuItemClickListener(){
            @覆盖
              公共布尔onMenuItemClick(菜单项项){                如果(item.getItemId()== R.id.delete){
                    Toast.makeText(ViewNumber.this,已删除,Toast.LENGTH_SHORT).show();                    //从数据库中删除数
                    db.open();
                    布尔检查= db.deleteNumber(numberToDelete);
                    db.close();                    如果(检查==真)
                    {
                        Log.d(NUMBER从数据库中删除,numberToDelete);
                    }                    Log.d(numberToDelete,+ numberToDelete);
                }                如果(item.getItemId()== R.id.edit){
                    Toast.makeText(ViewNumber.this,编辑,Toast.LENGTH_SHORT).show();
                }                 返回false;
              }
            });        返回false;
        }
    });
}

在此先感谢


解决方案

 公共布尔deleteNumber(字符串phoneNumber的)
{
    如果(db.delete(DATABASE_TABLE,KEY_PHONENUMBER +=?,新的String [] {} phoneNumber的)0){
      返回true;
    }其他{
     返回false;
    }
}

更多信息<一个href=\"http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#delete%28java.lang.String,%20java.lang.String,%20java.lang.String%5B%5D%29\"相对=nofollow> SQLiteDatabase删除

公众诠释删除(字符串表,字符串whereClause,字符串[] whereArgs)
在API级别1
在数据库中删除行的便捷方法。


  

参数


  
  

的表从

删除
  
  

whereClause 的选购时删除WHERE子句适用。传递null将删除所有行。


  
  

whereArgs 的您可能会包括哪些内容?where子句,这将是从whereArgs的值来替换秒。该值将被绑定为
  字符串。


  
  

返回,否则行如果whereClause传递受灾0数。要删除所有行,并获得数通1作为
  whereClause。


i try to delete phoneNumber from database but it is not working. How can i delete phoneNumber from database. I searched previous post but i find same solution the code is here. but not working

// delete a particular number

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

// list view code is here

// display number in 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;
        }
    });
}

Thanks in advance

解决方案

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

more info SQLiteDatabase Delete

public int delete (String table, String whereClause, String[] whereArgs) Added in API level 1 Convenience method for deleting rows in the database.

Parameters

table the table to delete from

whereClause the optional WHERE clause to apply when deleting. Passing null will delete all rows.

whereArgs You may include ?s in the where clause, which will be replaced by the values from whereArgs. The values will be bound as Strings.

Returns the number of rows affected if a whereClause is passed in, 0 otherwise. To remove all rows and get a count pass "1" as the whereClause.

这篇关于尝试从SQLite数据库中删除字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆