erhalten Das Konzept: Ich versuche zu implementieren "zu Favoriten hinzufügen" -Funktion in meiner App. Also in einer Aktivität habe ich viele Seiten (Kinder von ViewPager) mit Herzbild. Durch Klicken auf dieses Bild wird eine Zeichenfolge aus einer Array-Liste in die Tabelle der Datenbank eingefügt. In der zweiten Aktivität versuche ich, diesen Wert aus der Spalte dieser Tabelle abzurufen und auf eine TextView zu setzen.Integer-Wert anstelle der Zeichenfolge aus der Datenbank in Android
Das Problem: Ich bekomme eine lange Zahl als Text anstelle der Zeichenfolge.
2131165458
Ein Arraylist von String:
final ArrayList<String> array= new ArrayList<>();
array.add(getString(R.string.one_1));
array.add(getString(R.string.one_2));
array.add(getString(R.string.one_3));
Herz Bild mit OnClickListener:
final ImageView favourite = (ImageView) root.findViewById(R.id.favourite);
favourite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean hasInserted = myDB.hasInserted(array.get(position));
if (hasInserted) {
Toast.makeText(getActivity(), "DATA INSERTED SUCCESSFULLY", Toast.LENGTH_SHORT).show();
}
}
});
Hier ist der SqliteOpenHelper:
class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "Favourites_Database";
private static final String TABLE_NAME = "Favourites";
//private static final String COL_1 = "ID";
private static final String COL_2 = "Favourites";
DBHelper(Context context) {
super(context, DATABASE_NAME, null, 3);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, Favourite TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
boolean hasInserted(String favourites) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2, favourites);
long result = db.insert(TABLE_NAME, null, contentValues);
return (result != -1);
}
Cursor showData() {
SQLiteDatabase db = this.getWritableDatabase();
return db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
}
}
In der zweiten Aktivität, versuchen col_2 Werte abzurufen:
myDb = new DBHelper(this);
Cursor data = myDb.showData();
if(data.moveToFirst()) {
do {
String res = data.getString(1);
textView.setText(res);
textView.setTextColor(Color.BLUE);
}while (data.moveToNext());
}
Danke Jungs im Voraus.
Vielen Dank FAT! Ich erinnere mich jetzt, ich habe es geändert, nachdem ich den Wert eingegeben habe. –
Herzlich willkommen :) – FAT