На скриншоте вы можете увидеть мой просмотр списка, нажав кнопку «Кауфен», я хочу добавить значения из моего текстового просмотра в свою базу данных.
Это всего лишь мой второй проект в Android Studio,поэтому я не знаю, как сохранить значение из TextView, который находится в макете для ListView.
Надеюсь, кто-нибудь может мне помочь.
Макет для ListView (XML для TextView):
Находится в макете 'listitem_zutatenshopping.xml'
<TextView
android:id="@+id/tvMenge"
android:layout_width="40dp"
android:layout_height="30dp"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:layout_toEndOf="@+id/decrese"
android:textAlignment="center"
android:textSize="18sp" />
Мой код кнопки "Кауфен":
находится в классе 'ZutatenShopping.java'
btnKaufen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ZutatenTable db = ZutatenTable.getInstance(ZutatenShopping.this);
// Here I want that the value of the TextView (id = tvMenge) will stored into the database
refreshListView();
finish();
Моя база данных:
class 'ZutatenTable'
public class ZutatenTable extends SQLiteOpenHelper {
public static ZutatenTable INSTANCE = null;
public static final String DB_NAME = "ZUTATEN_TABLE";
public static final int VERSION = 1;
public static final String TABLE_NAME = "zutaten_table";
public static final String KEY_ID = "id";
public static final String COL_BROT = "brötchen";
public static final String COL_WURST = "würstchen";
public static final String COL_ZWIEBELN = "zwiebeln";
public static final String COL_GURKE = "gurke";
public static final String COL_TOMATEN = "tomaten";
public static final String COL_KETCHUP = "ketchup";
public static final String COL_SENF = "senf";
public static final String COL_SECRET = "secret_sauce";
public ZutatenTable(Context context) {
super(context, DB_NAME, null, VERSION);
}
public static ZutatenTable getInstance(final Context context){
if(INSTANCE == null){
INSTANCE = new ZutatenTable(context);
}
return INSTANCE;
}
@Override
public void onCreate(SQLiteDatabase db) {
String createQuery = "CREATE TABLE " + TABLE_NAME
+ "(" + KEY_ID + " INTEGER PRIMARY KEY, "
+ COL_BROT + " TEXT NOT NULL, "
+ COL_WURST + " TEXT NOT NULL, "
+ COL_ZWIEBELN + " TEXT NOT NULL, "
+ COL_GURKE + " TEXT NOT NULL, "
+ COL_TOMATEN + " TEXT NOT NULL, "
+ COL_KETCHUP + " TEXT NOT NULL, "
+ COL_SENF + " TEXT NOT NULL, "
+ COL_SECRET + " TEXT NOT NULL)";
db.execSQL(createQuery);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//Drop Table here if exists:
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
//Create Table again:
onCreate(db);
}
//Storing data into dabase.
public Zutaten addZutaten(final Zutaten zutaten){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COL_BROT, zutaten.getBrötchen());
values.put(COL_WURST, zutaten.getWurst());
values.put(COL_ZWIEBELN, zutaten.getZwiebeln());
values.put(COL_GURKE, zutaten.getGurken());
values.put(COL_TOMATEN, zutaten.getTomaten());
values.put(COL_KETCHUP, zutaten.getKetchup());
values.put(COL_SENF, zutaten.getSenf());
values.put(COL_SECRET, zutaten.getSecret());
long newID = db.insert(TABLE_NAME, null, values);
db.close();
return getZutat(newID);
}
public Zutaten getZutat(final long id){
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.query(TABLE_NAME,
new String[]{KEY_ID, COL_BROT, COL_WURST, COL_ZWIEBELN, COL_GURKE, COL_TOMATEN, COL_KETCHUP, COL_SENF, COL_SENF}, KEY_ID + " = ?",
new String[]{String.valueOf(id)}, null, null, null);
Zutaten zutaten = null;
if(c != null && c.getCount() > 0) {
c.moveToFirst();
zutaten = new Zutaten(c.getString(c.getColumnIndex(COL_BROT)));
zutaten.setId(c.getLong(c.getColumnIndex(KEY_ID)));
}
db.close();
return zutaten;
}
public List<Zutaten> readAllZutaten() {
List<Zutaten> zutatens = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
if(c.moveToFirst()){
do {
Zutaten zutaten = getZutat(c.getLong(c.getColumnIndex(KEY_ID)));
if(zutaten != null) {
((List) zutaten).add(zutaten);
}
}while (c.moveToNext());
}
db.close();
return zutatens;
}
public Zutaten upgradeZutaten(final Zutaten zutaten){
SQLiteDatabase db = this.getReadableDatabase();
ContentValues values = new ContentValues();
values.put(COL_BROT, zutaten.getBrötchen());
values.put(COL_WURST, zutaten.getWurst());
values.put(COL_ZWIEBELN, zutaten.getZwiebeln());
values.put(COL_GURKE, zutaten.getGurken());
values.put(COL_TOMATEN, zutaten.getTomaten());
values.put(COL_KETCHUP, zutaten.getKetchup());
values.put(COL_SENF, zutaten.getSenf());
values.put(COL_SECRET, zutaten.getSecret());
db.update(TABLE_NAME, values, KEY_ID + " = ?", new String[] {String.valueOf(zutaten.getId())});
db.close();
return this.getZutat(zutaten.getId());
}
}
Это мойАдаптер:
public class ZutatenAdapter extends ArrayAdapter<Zutaten> {
int amount = 0;
public ZutatenAdapter(Context context, final List<Zutaten> objects) {
super(context, 0, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Zutaten zutat = getItem(position);
View view = convertView;
if(view == null) {
view = LayoutInflater.from(getContext()).inflate(R.layout.listitem_zutatenshopping, parent, false);
}
((TextView) view.findViewById(R.id.tvZutat)).setText(zutat.getZutat());
final TextView menge = (TextView) view.findViewById(R.id.tvMenge);
ImageView decrease = (ImageView) view.findViewById(R.id.decrese);
ImageView increase = (ImageView) view.findViewById(R.id.increase);
decrease.setVisibility(View.VISIBLE);
increase.setVisibility(View.VISIBLE);
menge.setText(String.valueOf(amount));
increase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
menge.setText(String.valueOf(amount = amount + 10));
}
});
decrease.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
menge.setText(String.valueOf(amount = amount - 10));
}
});
return view;
}
}
Класс моей модели:
public class Zutaten implements Serializable {
private long id;
private String brötchen;
private String wurst;
private String zwiebeln;
private String gurken;
private String tomaten;
private String ketchup;
private String senf;
private String secret;
private String menge;
public Zutaten() {
this(null, null, null, null, null, null, null, null);
}
public Zutaten(String brötchen) {
this(brötchen, String wurst, String zwiebeln, String gurken, String tomaten, String ketchup, String senf, String secret);
}
public Zutaten(String brötchen, String wurst, String zwiebeln, String gurken, String tomaten, String ketchup, String senf, String secret){
this.brötchen = brötchen;
this.wurst = wurst;
this.zwiebeln = zwiebeln;
this.gurken = gurken;
this.tomaten = tomaten;
this.ketchup = ketchup;
this.senf = senf;
this.secret = secret;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getBrötchen() {
return brötchen;
}
public void setBrötchen(String brötchen) {
this.brötchen = brötchen;
}
public String getWurst() {
return wurst;
}
public void setWurst(String wurst) {
this.wurst = wurst;
}
public String getZwiebeln() {
return zwiebeln;
}
public void setZwiebeln(String zwiebeln) {
this.zwiebeln = zwiebeln;
}
public String getGurken() {
return gurken;
}
public void setGurken(String gurken) {
this.gurken = gurken;
}
public String getTomaten() {
return tomaten;
}
public void setTomaten(String tomaten) {
this.tomaten = tomaten;
}
public String getKetchup() {
return ketchup;
}
public void setKetchup(String ketchup) {
this.ketchup = ketchup;
}
public String getSenf() {
return senf;
}
public void setSenf(String senf) {
this.senf = senf;
}
public String getSecret() {
return secret;
}
public void setSecret(String secret) {
this.secret = secret;
}
public String getMenge() {
return menge;
}
public void setMenge(String menge) {
this.menge = menge;
}
}