gpt4 book ai didi

android - 如何使用一个按钮在从 sqlite 数据库中添加和删除数据之间切换?

转载 作者:行者123 更新时间:2023-11-29 20:13:32 25 4
gpt4 key购买 nike

我有一个 sqlite 数据库,可以从用户那里收集数据,也可以删除它。这是正在创建的:

db.execSQL("CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, DATA TEXT UNIQUE) ");

这是添加数据和删除数据的代码

public boolean insertData(String data) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cValues = new ContentValues();
cValues.put(Col_2, data);
long result = db.insert(TABLE_NAME, null, cValues);
if (result == -1)
return false;
else
return true;
}


public boolean deleteData(String data){
SQLiteDatabase db = this.getWritableDatabase();
long result = db.delete(TABLE_NAME, "DATA = ?", new String[]{data});
ContentValues cValues = new ContentValues();
if (result == 0)
return false;
else
return true;
}

这是我正在尝试使用的 java 按钮

public void changeData(){
favBtn.setOnClickListener(
new View.OnClickListener(){
@Override
public void onClick(View v){
boolean isInserted = myDB.insertData(textView.getText().toString());

if(isInserted == true)
Toast.makeText(randomApp.this, "Added Data", Toast.LENGTH_LONG).show();

else
Toast.makeText(randomApp.this, "Data was deleted", Toast.LENGTH_LONG).show();
myDB.deleteData(textView.getText().toString());


}
}
);
}

问题是单击此按钮时它会添加数据但不会删除所述数据。它只会继续播放“添加数据” toast 并将所述数据添加到数据库中——数据有一个唯一的约束专栏,但我不太确定我做错了什么或遗漏了什么,因为我知道它不应该被添加两次。如果已经添加数据,它应该删除数据,反之亦然。

最佳答案

根据您的代码,删除数据代码将始终执行。并且您插入的数据将立即删除,因此唯一约束永远不会中断。您没有在 else 案例中放置任何 {},它包含两个语句;第一个被视为 else 内部的语句,第二个将被视为 if 和 else 情况之外的语句。因此,要解决此问题,您需要正确放置 {}。 (个人意见:尽量把 {} 放在 if 和 else 的情况下,即使只有一条语句)

你应该把它改成:

if(isInserted == true)
{
Toast.makeText(randomApp.this, "Added Data", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(randomApp.this, "Data was deleted", Toast.LENGTH_LONG).show();
myDB.deleteData(textView.getText().toString());
}

关于android - 如何使用一个按钮在从 sqlite 数据库中添加和删除数据之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34422377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com