AndroidStudio - pobieranie konkretnej komórki z SQLite

0

Witam, chciałbym się dowiedzieć w jaki sposób mogę pobrać do Stringa konkretną komórke z bazy danych SQLite. To ma polegać na tym, że po wylosowaniu id wiersza, program pobierze komórkę z kolumny NAME. I właśnie nie wiem jak dostać się do tej komórki i zapisać ją w zmiennej String. Bardzo proszę podać jakiś przykład lub bardzo dokładnie wytłumaczyć, ponieważ dopiero zaczynam przygodę z AndroidStudio.
Z góry dziękuje :)

0

nikt tego za ciebie nie napisze. naucz się jak działa android, jak działa SQL oraz Sqllight albo inne narzędzie bazodanowe w androidzie, jak działają widoki i prezentacja danych w widokach.

mozesz sprawdzic ten watek:
Kotlin sql query i wypisywanie

0

Ale ja nie chce żeby ktoś za mnie to napisał tylko przykład (żebym mógł dokładnie przeanalizować jak to działa) albo właśnie żeby ktoś mi wytłumaczył. Dałem w tagach ale może powinienem w wątku napisać, że pisze w javie a nie kotlinie więc raczej link się nie przyda, ale oczywiście dzięki wielkie za odpowiedź ;)

0

Tutaj jest klasa, w której jest cała inicjacja bazy danych i metoda, która pozwala uzupełniać tę baze:

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME = "words.db";
    public static final String TABLE_NAME = "words_table";
    public static final String COL_1 = "ID";
    public static final String COL_2 = "NAME";
    public static final String COL_3 = "SURNAME";

    public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, 1); }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,SURNAME TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }

    public boolean insertData(String name, String surname) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(COL_2,name);
        contentValues.put(COL_3,surname);
        long result = db.insert(TABLE_NAME,null,contentValues);
        if (result == -1)
            return false;
        else
            return true;
    }
}

A w main activity wywołuje tę metodę:

public class MainActivity extends AppCompatActivity {

    DatabaseHelper MyDb;
    EditText editName;
    EditText editSurname;
    Button btnAdd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

     MyDb = new DatabaseHelper(this);

     editName = (EditText)findViewById(R.id.editText_name);
     editSurname = (EditText)findViewById(R.id.editText_surname);
     btnAdd = (Button)findViewById(R.id.button_add);

     AddData();
    }

    public void AddData() {
        btnAdd.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        boolean isInserted = MyDb.insertData(editName.getText().toString(), editSurname.getText().toString());
                        if (isInserted = true)
                            Toast.makeText(MainActivity.this, "Data Inserted", Toast.LENGTH_LONG).show();
                        else
                            Toast.makeText(MainActivity.this, "Data not Inserted", Toast.LENGTH_LONG).show();
                    }
                }
        );
    }
}

I wszystko fajnie zapisuje się w bazie, ale potrzebuję metody, która będzie wyciągać poszczególne komórki do Stringa.

0

fajnie - a w czym ci nie odpowiadają kursy z googla, w których to jest pokazane wraz z przykładami?

1 użytkowników online, w tym zalogowanych: 0, gości: 1