Android Studio добавляет значение из текстового представления в виде списка в базу данных нажатием кнопки - PullRequest
0 голосов
/ 26 января 2019

На скриншоте вы можете увидеть мой просмотр списка, нажав кнопку «Кауфен», я хочу добавить значения из моего текстового просмотра в свою базу данных.

Это всего лишь мой второй проект в Android Studio,поэтому я не знаю, как сохранить значение из TextView, который находится в макете для ListView.

Надеюсь, кто-нибудь может мне помочь.

enter image description here

Макет для 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...