Spinner y EditText – java android

Pregunta:


Tengo este código para cargar un spinner con datos de una base de datos:

private class Getfrutas extends AsyncTask<Void, Void, Void> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(Spinner.this);
            pDialog.setMessage("Obtencion de las seccion..");
            pDialog.setCancelable(false);
            pDialog.show();
        }
        @Override
        protected Void doInBackground(Void... arg0) {
            ServiceHandler jsonParser = new ServiceHandler();
            String json = jsonParser.makeServiceCall(URL_LISTA_FRUTA, ServiceHandler.GET);
            Log.e("Response: ", "> " + json);
            if (json != null) {
                try {
                    JSONObject jsonObj = new JSONObject(json);
                    if (jsonObj != null) {
                        JSONArray seccion = jsonObj
                                .getJSONArray("frutas");

                        for (int i = 0; i < seccion.length(); i++) {
                            JSONObject catObj = (JSONObject) seccion.get(i);
                            Seccion cat = new Seccion(catObj.getInt("id_seccion"),
                                    catObj.getString("seccion"));

                            frutasList.add(cat);
                        }
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            } else {
                Log.e("JSON Data", "¿No ha recibido ningún dato desde el servidor!");
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            if (pDialog.isShowing())
                pDialog.dismiss();
            populateSpinner();
        }
    }


    public void onItemSelected(AdapterView<?> parent, View view, int position,
                               long id) {
        Toast.makeText(
                getApplicationContext(),
                parent.getItemAtPosition(position).toString() + " Seleccionada" ,
                Toast.LENGTH_LONG).show();
        String seccion = parent.getItemAtPosition(position).toString();
        k.setText(seccion);


    }
    public void onNothingSelected(AdapterView<?> arg0) {
    }

Como pueden ver estoy capturando el dato llamado sección, algo así:

introducir la descripción de la imagen aquí

Lo que necesito es que en el campo de texto se muestre el ID del dato seleccionado en el spinner, ¿alguna idea de como lo puedo hacer?

Preguntado por: jaron cascante Pérez

Sander Rito

Por lo que veo en tu codigo, usas la lista frutasList para llenar el spinner.
Rapidamente para responder tu pregunta de poner el id del elemento seleccionado en el edittext, se haria de esta manera

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    k.setText(frutasList.get(position).id); // <-- asumiendo que la clase Seccion tiene un atributo "id" y es tipo String
}

segun la posicion seleccionada del spinner, seleccionas el objeto en la lista frutasList y obtienes el atributo id del objeto Seccion

Fuente

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *