У меня в базе 3 строки пользователей. Я хочу нажать кнопку, и она показывает количество пользователей в таблице user_admin.
Это setText.
public class CountActivity extends AppCompatActivity {
DatabaseHelper db;
Button b1;
TextView t1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_count);
db = new DatabaseHelper(this);
b1 = findViewById(R.id.countButton);
t1 = findViewById(R.id.countAnswer);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
t1.setText(Integer.toString(db.getIds()));
}
});
}
}
Вот база данных. Вместе с функцией
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME= "sqllitetest";
private static final int DB_VERSION = 2;
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String sqlUsers = "CREATE TABLE user_admin(id INTEGER PRIMARY KEY AUTOINCREMENT, user_name VARCHAR, user_password VARCHAR);";
sqLiteDatabase.execSQL(sqlUsers);
}
public int getIds()
{
String selectQuery = "SELECT id FROM user_admin";
SQLiteDatabase database = this.getReadableDatabase();
Cursor c = database.rawQuery(selectQuery, null);
c.moveToFirst();
int total = c.getCount();
c.close();
return total;
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
String sqlUsers = "DROP TABLE IF EXISTS user_admin";
sqLiteDatabase.execSQL(sqlUsers);
onCreate(sqLiteDatabase);
}
}
Вот xml.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/countButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
<TextView
android:id="@+id/countAnswer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="36sp" />
</LinearLayout>
Когда я нажимаю на кнопку, происходит сбой. Я новичок в SQLite, поэтому хотел бы знать, что вызывает это, и возможное решение.