Java 从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

我想通过单击按钮更新数据库中的一列。按钮从EditText获取值。然后我想单击另一个按钮,并想在TextView中获取一个值。在类和数据库中都有我的方法

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”。数据库未更新此代码中有错误吗?