Java 从EditText按按钮更新数据库中的列,并按按钮将其返回到Textview
我想通过单击按钮更新数据库中的一列。按钮从EditText获取值。然后我想单击另一个按钮,并想在TextView中获取一个值。在类和数据库中都有我的方法Java 从EditText按按钮更新数据库中的列,并按按钮将其返回到Textview,java,android,Java,Android,我想通过单击按钮更新数据库中的一列。按钮从EditText获取值。然后我想单击另一个按钮,并想在TextView中获取一个值。在类和数据库中都有我的方法 button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDb.open(); int wynik = editText.getI
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDb.open();
int wynik = editText.getInputType();
mDb.updateScore(product,wynik);
mDb.close();
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDb.open();
Cursor t = mDb.fetchOneCwiczenie(product);
int c = t.getColumnIndexOrThrow("score");
String k = Integer.toString(c);
textView1.setText(k);
mDb.close();
}
});
和数据库
public int updateScore(String name, int wynik) {
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_SERIES,wynik);
String[] whereArgs={name};
int c = mDb.update(TABLE_CWICZENIA,contentValues, KEY_NAME + " =? " , whereArgs);
return c;
}
public Cursor fetchOneCwiczenie(String name) {
String query = "SELECT * FROM " + TABLE_CWICZENIA + " WHERE name='"+name+"'";
Cursor c = mDb.rawQuery(query,null);
if(c != null) {
c.moveToFirst();
}
return c;
}
public class OpenHelper1 {
private static final String TAG = "TreningDbAdapter";
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;
private final Context mCtx;
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "menadzerCwiczen1";
private static final String TABLE_CWICZENIA = "cwiczenia";
public static final String KEY_ID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_KIND = "kind";
public static final String KEY_URL = "url";
public static final String KEY_SCORE = "score";
public static final String KEY_SERIES = "series";
private static final String DATABASE_CREATE =
"CREATE TABLE if not exists " + TABLE_CWICZENIA + " (" +
KEY_ID + " integer PRIMARY KEY autoincrement," +
KEY_NAME + " TEXT," +
KEY_KIND + " TEXT," +
KEY_URL + " TEXT," +
KEY_SCORE + " integer," +
KEY_SERIES + " integer" +
");";
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.w(TAG, DATABASE_CREATE);
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CWICZENIA);
onCreate(db);
}
}
public OpenHelper1(Context ctx) {
this.mCtx = ctx;
}
public OpenHelper1 open() throws SQLException {
mDbHelper = new DatabaseHelper(mCtx);
mDb = mDbHelper.getWritableDatabase();
return this;
}
public void close() {
if (mDbHelper != null) {
mDbHelper.close();
}
}
public long createCwiczenie(String name,
String kind,
String url,
int score,
int series) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_NAME, name);
initialValues.put(KEY_KIND, kind);
initialValues.put(KEY_URL, url);
initialValues.put(KEY_SCORE, score);
initialValues.put(KEY_SERIES, series);
return mDb.insert(TABLE_CWICZENIA, null, initialValues);
}
public void deleteCwiczenie(String name) {
mDb.execSQL("DELETE FROM " + TABLE_CWICZENIA + " WHERE " + KEY_NAME + "=\"" + name + "\";" );
}
public int updateScore(String name, int wynik) {
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_SERIES,wynik);
String[] whereArgs={name};
int c = mDb.update(TABLE_CWICZENIA,contentValues, KEY_NAME + " =? " , whereArgs);
return c;
}
public boolean deleteAllCwiczenia() {
int doneDelete = 0;
doneDelete = mDb.delete(TABLE_CWICZENIA, null , null);
Log.w(TAG, Integer.toString(doneDelete));
return doneDelete > 0;
}
public Cursor fetchCwiczeniaByName(String inputText) throws SQLException {
Log.w(TAG, inputText);
Cursor mCursor = null;
if (inputText == null || inputText.length () == 0) {
mCursor = mDb.query(TABLE_CWICZENIA, new String[] {KEY_ID,
KEY_NAME, KEY_KIND, KEY_URL, KEY_SCORE, KEY_SERIES},
null, null, null, null, null);
}
else {
mCursor = mDb.query(true, TABLE_CWICZENIA, new String[] {KEY_ID,
KEY_NAME, KEY_KIND, KEY_URL, KEY_SCORE, KEY_SERIES},
KEY_NAME + " like '%" + inputText + "%'", null,
null, null, null, null);
}
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
public Cursor fetchAllcwiczenia() {
Cursor mCursor = mDb.query(TABLE_CWICZENIA, new String[] {KEY_ID,
KEY_NAME, KEY_KIND, KEY_URL, KEY_SCORE, KEY_SERIES},
null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
public Cursor fetchOneCwiczenie(String name) {
String query = "SELECT * FROM " + TABLE_CWICZENIA + " WHERE name='"+name+"'";
Cursor c = mDb.rawQuery(query,null);
if(c != null) {
c.moveToFirst();
}
return c;
}
public void insertSomeCwiczenia() {
createCwiczenie("Pompki","Klatka piersiowa","https://www.youtube.com/watch?v=bwnidT3CB_Q",0,3);
createCwiczenie("Pompki na poręczach","Triceps","https://www.youtube.com/watch?v=Cufsu3IHhCo",0,3);
createCwiczenie("Odwrotne wiosłowanie","Plecy","https://www.youtube.com/watch?v=8qCn76yKhro",0,3);
createCwiczenie("Spięcia brzucha leżąc","Górna część mięśni brzucha","https://www.youtube.com/watch?v=VVcm4LdmIwM",0,3);
createCwiczenie("Unoszenie kolan","Dolna część mięśni brzucha","https://www.youtube.com/watch?v=Htx9Z8ZkiCg",0,3);
createCwiczenie("Skręty tułowia","Mięśnie skośne brzucha","https://www.youtube.com/watch?v=i7smKA3mgBU",0,3);
createCwiczenie("Przysiady","Uda","https://www.youtube.com/watch?v=NEduXlZ8zSk&t",0,3);
createCwiczenie("Wspięcia na palce","Mięśnie łydek","https://www.youtube.com/watch?v=Wri0VppFWCY",0,3);
createCwiczenie("Podciąganie na drążku","Mięśnie łydek","https://www.youtube.com/watch?v=7hM1iriAxx8",0,3);
}
}当您实际上没有类似于
String[]
的参数时,不需要传递String[]
。你能做的就是简单地把name
放在查询中,因为只有一个name
like
public int updateScore(String name, int wynik) {
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_SERIES,wynik);
int c = mDb.update(TABLE_CWICZENIA,contentValues, KEY_NAME + " = " + name , null);
return c;
}
这个代码有什么问题。当我点击文本视图中的第二个按钮时,我看到了数字“4”。这不是我被带到编辑部的号码。我不知道为什么是“4”,但这让我很生气。我不再喜欢这个号码了。因此,我现在必须去健身房。
score
是数据库中的列,并且getColumnIndexOrThrow(“score”)
将始终返回数据库中基于零的score
列索引,该索引始终是固定的。因此一直得到4
。哇,谢谢兄弟。这是显而易见的。我很蠢:应该是这样吗??int c=t.getInt(t.getColumnIndexOrThrow(“名称”);如果是,我现在的输出为“0”。数据库未更新此代码中有错误吗?