java - 如何在 android studio 中解析我的 SQL 数据库的布尔值?
问题描述
我有一个具有布尔值的开关。我正在尝试将布尔值解析为 int,但它不起作用。当我删除布尔值时,所有值都会添加到数据库中,所以我知道我误解了如何从我的开关中实现这个布尔值。
这是我尝试实现的代码的一部分
public class MainActivity extends AppCompatActivity {
public static DataBaseHelper dataBaseHelper;
Button btn_submit, btn_users;
EditText et_gender,et_age;
Switch sw_diagnosed;
dataBaseHelper.queryData("CREATE TABLE IF NOT EXISTS USER(Id INTEGER PRIMARY KEY AUTOINCREMENT, gender VARCHAR, age INT, diagnosed INT DEFAULT 0, image BLOB)");
int numDiagnosed = sw_diagnosed.isChecked() ? 1 : 0;
String bla = Integer.toString(numDiagnosed);
btn_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
dataBaseHelper.insertData(
et_gender.getText().toString().trim(),
//et_gender.getText().toString(), Integer.parseInt(et_age.getText().toString()
Integer.parseInt(et_age.getText().toString()),
Integer.parseInt(bla),
imageViewToByte(ivFinger)
);
Toast.makeText(getApplicationContext(), "Added Successfully", Toast.LENGTH_SHORT).show();
}
catch (Exception e){
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Error submitting user", Toast.LENGTH_SHORT).show();
}
}
});
}
这是我的 SQL 助手中的方法
public void insertData(String gender, int age, int isDiagnosed, byte[] image){
SQLiteDatabase database = getWritableDatabase();
String sql = "INSERT INTO USER VALUES (NULL, ?,?,?,?)";
SQLiteStatement statement = database.compileStatement(sql);
statement.clearBindings();
statement.bindString(1, gender);
statement.bindString(2, Integer.toString(age));
statement.bindString(3, Integer.toString(isDiagnosed));
statement.bindBlob(3, image);
statement.executeInsert();
}
解决方案
如果您想在尝试保存时从开关中获取价值,则应将该代码放在 OnClickListener 中:
int numDiagnosed = sw_diagnosed.isChecked() ? 1 : 0;
然后尝试保存它。此外,您将 int 转换为 String,然后将 String 转换为 Integer。只需使用从上面的代码中获得的值,如下所示:
dataBaseHelper.insertData(
et_gender.getText().toString().trim(),
//et_gender.getText().toString(), Integer.parseInt(et_age.getText().toString()
Integer.parseInt(et_age.getText().toString()),
numDiagnosed,
imageViewToByte(ivFinger)
);
推荐阅读
- python - 如何保持精灵的方向?
- mysql - 为什么组合计数查询执行时间过长?
- android - Koin java.lang.NoClassDefFoundError:解析失败:Lorg/koin/dsl/context/ParameterHolderKt
- javascript - VUE.JS 壮举。速度.js。未能在转换挂钩上实现自定义转换
- ios - 有什么方法可以使用 SwiftUI 创建 BottomBar
- python - 如何提取文本中的文本
带标签
- swift - 如何在 RealityKit 中为模型的旋转设置动画?
- bash - bash 变量吃掉多个空格,把它们变成一个
- asp.net-core - gRPC 和 ASP.NET Core:服务器端反射
- python - 在抽象类的情况下,实例化的最佳方式是什么?