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 :)
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
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ź ;)
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.
fajnie - a w czym ci nie odpowiadają kursy z googla, w których to jest pokazane wraz z przykładami?
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.