Autore Topic: [RISOLTO] problema update checkbox e spinner in DB Mysql  (Letto 281 volte)

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
[RISOLTO] problema update checkbox e spinner in DB Mysql
« il: 05 Luglio 2016, 19:11:46 CEST »
0
Salve, ho il seguente codice per registrare dei dati in DB MySQL.
I dati sono di tipo Text, CheckBox, Spinner

Codice (Java): [Seleziona]
Button registrazione = (Button)findViewById(R.id.registrati);
        registrazione.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText interessiE = (EditText)findViewById(R.id.interessi);
                EditText descrzioneE = (EditText)findViewById(R.id.descrizione);
                Spinner professioneE = (Spinner)findViewById(R.id.professione);
                Spinner professione_specificaE = (Spinner)findViewById(R.id.professione_specifica);
                Spinner professione_livelloE = (Spinner)findViewById(R.id.professione_livello);
                Long professione = professioneE.getSelectedItemId();
                String interessi = interessiE.getText().toString();
                String descrzione = descrzioneE.getText().toString();
                String info = "0";
                String colazione = "0";
                String pranzo = "0";
                String aperitivo = "0";
                String cena = "0";
                String lavoro = "0";
                String personale = "0";
                CheckBox infoC = (CheckBox)findViewById(R.id.info);
                CheckBox colazioneC = (CheckBox)findViewById(R.id.colazione);
                CheckBox pranzoC = (CheckBox)findViewById(R.id.pranzo);
                CheckBox aperitivoC = (CheckBox)findViewById(R.id.aperitivo);
                CheckBox cenaC = (CheckBox)findViewById(R.id.cena);
                CheckBox lavoroC = (CheckBox)findViewById(R.id.lavoro);
                CheckBox personaleC = (CheckBox)findViewById(R.id.personale);
                if( infoC.isChecked() ){
                    info = "1";
                }
                if( colazioneC.isChecked() ){
                    colazione = "1";
                }
                if( pranzoC.isChecked() ){
                    pranzo = "1";
                }
                if( aperitivoC.isChecked() ){
                    aperitivo = "1";
                }
                if( cenaC.isChecked() ){
                    cena = "1";
                }
                if( lavoroC.isChecked() ){
                    lavoro = "1";
                }
                if( personaleC.isChecked() ){
                    personale = "1";
                }
                if(  professione != 0 ){
                    String professioneT = professioneE.getSelectedItem().toString();
                    String professione_specifica = "";
                    String professione_livello = "";
                    Long professione_specifica1 = null, professione_livello1 = null, incinta1 = null;
                    if( professione_specificaE.getVisibility() == View.VISIBLE ){
                        professione_specifica1 = professione_specificaE.getSelectedItemId();
                    }
                    if( professione_livelloE.getVisibility() == View.VISIBLE ){
                        professione_livello1 = professione_livelloE.getSelectedItemId();
                    }
                    if( professione_specifica1 == null || professione_specifica1 != 0 ){
                        if( professione_livello1 == null || professione_livello1 != 0 ){
                            if( professione_specifica1 != null ){
                                professione_specifica = professione_specificaE.getSelectedItem().toString();
                            }else{
                                professione_specifica = "-";
                            }
                            if( professione_livello1 != null ){
                                professione_livello = professione_livelloE.getSelectedItem().toString();
                            }else{
                                professione_livello = "-";
                            }
                            String contatti = lavoro.concat(",").concat(personale);
                            String disponibilita = colazione.concat(",").concat(pranzo).concat(",").concat(aperitivo).concat(",").concat(cena);
                            if( descrzione.equals("") ){
                                descrzione = "-";
                            }
                            if( interessi.equals("") ){
                                interessi = "-";
                            }
                            String parametri = professioneT.concat("###").concat(professione_specifica).concat("###").concat(professione_livello).concat("###").concat(interessi).concat("###").concat(descrzione).concat("###").concat(disponibilita).concat("###").concat(contatti).concat("###").concat(info);
                            new Mod().execute(parametri);
                        }else{
                            Toast.makeText(Registrazione.this, "Tutti i campi sono necessari",Toast.LENGTH_LONG).show();
                        }
                    }else{
                        Toast.makeText(Registrazione.this, "Tutti i campi sono necessari",Toast.LENGTH_LONG).show();
                    }
                }else{
                    Toast.makeText(Registrazione.this, "Tutti i campi sono necessari",Toast.LENGTH_LONG).show();
                }
            }
        });

Per quanto riguarda la registrazione è ok.

Il problema è nell'aggiornamento di alcuni dati come Checkbox e spinner.

per l'aggiornamento utilizzo questo codice:
Codice (Java): [Seleziona]
CheckBox c1, c2, c3;

    private EditText editTextEmail;
    private EditText editTextProfessione;

    private Button buttonUpdate;
    private Button buttonDelete;

    private String email, txtViewEmail;

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

        c1 = (CheckBox) findViewById(R.id.info);

        Intent intent = getIntent();
        email = getIntent().getExtras().getString("txtViewEmail");

        editTextEmail = (EditText) findViewById(R.id.editTextEmail);

        Spinner professione = (Spinner)findViewById(R.id.professione);
        final ArrayAdapter<CharSequence> adapter_professione = ArrayAdapter.createFromResource(this, R.array.professione, android.R.layout.simple_spinner_item);
        adapter_professione.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        professione.setAdapter(adapter_professione);
        professione.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String selezionata = "p"+position;
                Log.d("sel",selezionata);
                final Spinner professione_specifica;
                final Spinner professione_livello;
                professione_specifica = (Spinner)findViewById(R.id.professione_specifica);
                professione_specifica.setAdapter(null);
                professione_specifica.setVisibility(View.GONE);
                professione_livello = (Spinner)findViewById(R.id.professione_livello);
                professione_livello.setAdapter(null);
                professione_livello.setVisibility(View.GONE);
                if( !selezionata.equals("p0") && !selezionata.equals("p9") ){
                    int resourceId = getResources().getIdentifier(selezionata, "array", getPackageName());
                    Log.d("num",String.valueOf(resourceId));
                    final ArrayAdapter<CharSequence> adapter_professione_specifica = ArrayAdapter.createFromResource(ViewProfessioni.this, resourceId, android.R.layout.simple_spinner_item);
                    adapter_professione_specifica.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    professione_specifica.setAdapter(adapter_professione_specifica);
                    professione_specifica.setClickable(true);
                    professione_specifica.setFocusable(true);
                    professione_specifica.setVisibility(View.VISIBLE);
                    professione_specifica.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        @Override
                        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                            final Spinner professione_livello;
                            professione_livello = (Spinner)findViewById(R.id.professione_livello);
                            if( position != 0 ){
                                final ArrayAdapter<CharSequence> adapter_professione_livello = ArrayAdapter.createFromResource(ViewProfessioni.this, R.array.professione_livello, android.R.layout.simple_spinner_item);
                                adapter_professione_livello.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                                professione_livello.setAdapter(adapter_professione_livello);
                                professione_livello.setClickable(true);
                                professione_livello.setFocusable(true);
                                professione_livello.setVisibility(View.VISIBLE);
                            }
                        }

                        @Override
                        public void onNothingSelected(AdapterView<?> parent) {

                        }
                    });
                }else{
                    professione_specifica.setClickable(false);
                    professione_specifica.setFocusable(false);
                    professione_livello.setClickable(false);
                    professione_livello.setFocusable(false);
                    professione_specifica.setAdapter(null);
                    professione_livello.setAdapter(null);
                    professione_specifica.setVisibility(View.GONE);
                    professione_livello.setVisibility(View.GONE);
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

        buttonUpdate = (Button) findViewById(R.id.buttonUpdate);

        buttonUpdate.setOnClickListener(this);

        editTextEmail.setText(email);

        getEmployee();


    }

    private void getEmployee(){
        class GetEmployee extends AsyncTask<Void,Void,String>{
            ProgressDialog loading;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(ViewProfessioni.this,"Fetching...","Wait...",false,false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                showEmployee(s);
            }

            @Override
            protected String doInBackground(Void... params) {
                RequestHandler rh = new RequestHandler();
                String s = rh.sendGetRequestParam(Config.URL_GET_PROF,email);
                return s;
            }
        }
        GetEmployee ge = new GetEmployee();
        ge.execute();
    }

    private void showEmployee(String json){
        try {
            JSONObject jsonObject = new JSONObject(json);
            JSONArray result = jsonObject.getJSONArray(Config.TAG_JSON_ARRAY);
            JSONObject c = result.getJSONObject(0);
            String professione = c.getString(Config.TAG_PROFESSIONI);
            CheckBox info = (CheckBox) findViewById(R.id.info);

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    private void updateEmployee(){
        final String professione = editTextProfessione.getText().toString().trim();

        class UpdateEmployee extends AsyncTask<Void,Void,String>{
            ProgressDialog loading;
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(ViewProfessioni.this,"Updating...","Wait...",false,false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                Toast.makeText(ViewProfessioni.this,s,Toast.LENGTH_LONG).show();
            }

            @Override
            protected String doInBackground(Void... params) {
                HashMap<String,String> hashMap = new HashMap<>();
                hashMap.put(Config.KEY_EMP_EMAIL,email);
                hashMap.put(Config.KEY_EMP_PROFESSIONI,professione);

                RequestHandler rh = new RequestHandler();

                String s = rh.sendPostRequest(Config.URL_UPDATE_PROF,hashMap);

                return s;
            }
        }

        UpdateEmployee ue = new UpdateEmployee();
        ue.execute();
        startActivity(new Intent(ViewProfessioni.this,ProfileActivity.class));
    }


    @Override
    public void onClick(View v) {
        if(v == buttonUpdate){
            updateEmployee();
        }
    }

però per quanto riguarda gli EditText funziona, sono impallato per i checkbox e per gli spinner.

1) come faccio a far visualizzare selezionati i checkbox inseriti nel db?
2)come faccio a far visualizzare selezionati gli spinner inseriti nel DB

Grazie

Post unito: [time]05 Luglio 2016, 23:39:40 CEST[/time]
nessun suggerimento?
« Ultima modifica: 07 Luglio 2016, 18:20:18 CEST da newbie2016 »

Offline LinkOut

  • Utente normale
  • ***
  • Post: 272
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:problema update checkbox e spinner in DB Mysql
« Risposta #1 il: 06 Luglio 2016, 10:56:13 CEST »
+1
Lo fai quando recuperi i dati in base ai parametri salvati...

Codice (Java): [Seleziona]
            /**
             * CheckBox
             * */

            String info = "0";

            if(tuaCheckBox.isChecked() ){
                info = "1";
            }
            //Recuperando i dati da dove li hai salvati
            if(info.equals("1")){ //Controlli la tua variabile
                tuaCheckBox.setChecked(true); //Setti la checkbox a "Checked"
            }

Stessa cosa per lo spinner, devi settargli gli elementi che hai salvato.

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
Re:problema update checkbox e spinner in DB Mysql
« Risposta #2 il: 06 Luglio 2016, 17:45:59 CEST »
0
Grazie.

Per i CheckBox ho fatto cosi:
Codice (Java): [Seleziona]
if( info.equals("0") ){
                infoC.setChecked(false); //Setti la checkbox a "Checked"
            }else if( info.equals("1") ){
                infoC.setChecked(true); //Setti la checkbox a "Checked"
            }
funziona, visualizza i i checkbox inseriti nel db (selezionato o non selezionati).

Adesso per gli Spinner come devo fare?
Grazie
« Ultima modifica: 07 Luglio 2016, 18:19:52 CEST da newbie2016 »