Spinner item in Datenbank schreiben mysql

  • 2 Antworten
  • Letztes Antwortdatum
H

haner

Ambitioniertes Mitglied
0
Schönen guten Abend,
nachdem ich es nun erfolgreich geschafft habe die Daten-Eingabe in die editText-Felder in meine mysql-Datenbank aufzunehmen, bin ich nun beim nächsten Schritt angelangt. Ich möchte in der selben Activity neben den editText-Feldern einen Spinner erstellen, sodass der angewählte Text ebenfalls in der Datenbank gespeichert wird. Spinner und editText-Daten sollen bei drücken eines einzigen Buttons in die Datenbank geschrieben werden. Die Anzeige des Spinners und die Auswahl funktioniert schon. Leider funktioniert die Übergabe an die Datenbank noch nicht. Unten findet ihr meinen bisherigen Code. Ich komme momentan nicht mehr voran. Hat jemand einen/mehrere Tipps wie ich weitermachen kann bzw. was ich ändern muss?
Vielen Dank schonmal und schöne Weihnachten
VG haner

Code:
public class AnghinzuActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    EditText artikelbezeichnung, preis_absolut, preis_relativ, angebotszeitraum, verkaufsort, angebotshaeufigkeit, bewertung, benutzername;
    Spinner kategorie;

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

        kategorie = (Spinner)findViewById(R.id.spKategorie);
        
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.categories_array, android.R.layout.simple_spinner_item);
        
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        
        kategorie.setAdapter(adapter);

        kategorie.setOnItemSelectedListener(this);

        artikelbezeichnung =(EditText)findViewById(R.id.etArtikelbezeichnung);
        preis_absolut =(EditText)findViewById(R.id.etPreis_absolut);
        preis_relativ =(EditText)findViewById(R.id.etPreis_relativ);
        angebotszeitraum =(EditText)findViewById(R.id.etAngebotszeitraum);
        verkaufsort =(EditText)findViewById(R.id.etVerkaufsort);
        angebotshaeufigkeit =(EditText)findViewById(R.id.etAngebotshaeufigkeit);
        bewertung =(EditText)findViewById(R.id.etBewertung);
        benutzername =(EditText)findViewById(R.id.etBenutzername);
    }

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
        String str_kategorie = parent.getItemAtPosition(pos).toString();
    }

    public void onNothingSelected(AdapterView<?> parent) {
    }
    
    public void OnAnghinzu(View view) {

        String str_kategorie = kategorie.getText().toString();
        String str_artikelbezeichnung = artikelbezeichnung.getText().toString();
        String str_preis_absolut = preis_absolut.getText().toString();
        String str_preis_relativ = preis_relativ.getText().toString();
        String str_angebotszeitraum = angebotszeitraum.getText().toString();
        String str_verkaufsort = verkaufsort.getText().toString();
        String str_angebotshaeufigkeit = angebotshaeufigkeit.getText().toString();
        String str_bewertung = bewertung.getText().toString();
        String str_benutzername = benutzername.getText().toString();

        String type = "anghinzu";
        BackgroundWorker backgroundWorker = new BackgroundWorker(this);
        backgroundWorker.execute(type, str_kategorie, str_artikelbezeichnung, str_preis_absolut, str_preis_relativ, str_angebotszeitraum, str_verkaufsort, str_angebotshaeufigkeit, str_bewertung, str_benutzername);
    }
}

Code:
public class BackgroundWorker extends AsyncTask<String,Void,String> {

    Context context;
    AlertDialog alertDialog;
    BackgroundWorker(Context ctx) {
        context = ctx;
    }

    @Override
    protected String doInBackground(String... params) {
        String type = params[0];
        String login_url = "http://www.techcad.bplaced.net/login.php";
        String anghinzu_url = "http://www.techcad.bplaced.net/anghinzu.php";
        if(type.equals("login")) {
            try {
                String Benutzername = params[1];
                String Passwort = params[2];
                URL url = new URL(login_url);
                HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                httpURLConnection.setDoInput(true);
                OutputStream outputStream = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
                String post_data = URLEncoder.encode("Benutzername", "UTF-8")+"="+URLEncoder.encode(Benutzername, "UTF-8")+"&"
                        +URLEncoder.encode("Passwort", "UTF-8")+"="+URLEncoder.encode(Passwort, "UTF-8");
                bufferedWriter.write(post_data);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();
                InputStream inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
                String result = "";
                String line = "";
                while((line = bufferedReader.readLine()) != null){
                    result += line;
                }
                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                return result;
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } 
        else if(type.equals("anghinzu")) {
            try {
                String kategorie = params[1];
                String artikelbezeichnung = params[2];
                String preis_absolut = params[3];
                String preis_relativ = params[4];
                String angebotszeitraum = params[5];
                String verkaufsort = params[6];
                String angebotshaeufigkeit = params[7];
                String bewertung = params[8];
                String benutzername = params[9];
                URL url = new URL(anghinzu_url);
                HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                httpURLConnection.setDoInput(true);
                OutputStream outputStream = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
                String post_data = URLEncoder.encode("Kategorie", "UTF-8")+"="+URLEncoder.encode(kategorie, "UTF-8")+"&"+
                        URLEncoder.encode("Artikelbezeichnung", "UTF-8")+"="+URLEncoder.encode(artikelbezeichnung, "UTF-8")+"&"+
                        URLEncoder.encode("Preis_absolut", "UTF-8")+"="+URLEncoder.encode(preis_absolut, "UTF-8")+"&"+
                        URLEncoder.encode("Preis_relativ", "UTF-8")+"="+URLEncoder.encode(preis_relativ, "UTF-8")+"&"+
                        URLEncoder.encode("Angebotszeitraum", "UTF-8")+"="+URLEncoder.encode(angebotszeitraum, "UTF-8")+"&"+
                        URLEncoder.encode("Verkaufsort", "UTF-8")+"="+URLEncoder.encode(verkaufsort, "UTF-8")+"&"+
                        URLEncoder.encode("Angebotshaeufigkeit", "UTF-8")+"="+URLEncoder.encode(angebotshaeufigkeit, "UTF-8")+"&"+
                        URLEncoder.encode("Bewertung", "UTF-8")+"="+URLEncoder.encode(bewertung, "UTF-8")+"&"+
                        URLEncoder.encode("Benutzername", "UTF-8")+"="+URLEncoder.encode(benutzername, "UTF-8");
                bufferedWriter.write(post_data);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();
                InputStream inputStream = httpURLConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
                String result = "";
                String line = "";
                while((line = bufferedReader.readLine()) != null){
                    result += line;
                }
                bufferedReader.close();
                inputStream.close();
                httpURLConnection.disconnect();
                return result;
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onPreExecute() {
        alertDialog = new AlertDialog.Builder(context).create();
        alertDialog.setTitle("LoginStatus");
    }

    @Override
    protected void onPostExecute(String result) {
        alertDialog.setMessage(result);
        alertDialog.show();
    }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }

    public void execute(String type, String Benutzername, String Passwort) {
    }
}
 
@haner : Ich würde dir ja gerne helfen, aber du schreibst gar nicht, was dein Problem ist.
Du machst ja in dieser Methode eigentlich gar nichts:

Code:
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
        String str_kategorie = parent.getItemAtPosition(pos).toString();
    }
Du kannst den Wert auch in eine Klassenvariable schreiben und dann diesen Wert verschicken.
 
Mein Problem ist, dass ich nicht weiß, was ich wo machen muss, sodass mir das angeklickte Spinner-Objekt zusammen mit den editText-Objekten in die mysql-Datenbank geschrieben wird.
 
Zurück
Oben Unten