Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Personalizar Un Spinner Android Studio 2019
Personalizar Un Spinner Android Studio 2019
Primero se crea un paquete donde irán los datos especiales (Para mantener el orden)
public class Datos {
Después se coloca el spinner donde se desea. Junto con los Edittext donde se editara la
información, un spinner para la edad y un botón para ingresar la información.
Dentro de la clase se implementan las funciones obligatorias se crea un arraysList de Datos, y una
clase privada donde se tengan los 3 EditText y el ImageView. A continuación se explica que hace
cada función y se implementa la clase SPproyectoHolder que sirve para organizar los datos.
@Override
public int getCount() {
//tamaño del array
return datos.size();
}
@Override
public Object getItem(int position) {
//devuelve el Objeto (lo usan la funcion getview getDropDownView)
return datos.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
objeto.setIvFoto((ImageView) view.findViewById(R.id.ivFoto) );
objeto.setTvNombre((TextView)view.findViewById(R.id.tvNombre));
objeto.setTvApellido((TextView)view.findViewById(R.id.tvApellido));
objeto.setTvEdad((TextView)view.findViewById(R.id.tvEdad));
@Override
public View getDropDownView(int position, View convertView, ViewGroup
parent) {
objeto.setIvFoto((ImageView) view.findViewById(R.id.ivFoto) );
objeto.setTvNombre((TextView)view.findViewById(R.id.tvNombre));
objeto.setTvApellido((TextView)view.findViewById(R.id.tvApellido));
objeto.setTvEdad((TextView)view.findViewById(R.id.tvEdad));
objeto.getTvNombre().setText( datos.get(position).getNombre());
objeto.getTvApellido().setText(
datos.get(position).getNombre());
objeto.getTvEdad().setText( datos.get(position).getNombre());
ahora solo es asignar el adaptador y el arrayslist de datos al Spinner, por motivos didácticos, las
operaciones en el Spinner se harán dentro de la función códigoSpinner.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
codigoSpinner();
codigoRestoComponentes();
}
private void codigoSpinner() {
spEdad=(Spinner) findViewById(R.id.spEdad);
btnIngresar=(Button) findViewById(R.id.btnIngresar);
}
//Agregandole un adaptador Generico al Spinner
ArrayAdapter adaptadorsimple=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item,numeros.toArray(new
String[0]));
spEdad.setAdapter(adaptadorsimple);
datos.add(new
Datos(etNombre.getText().toString(),etApellido.getText().toString(),
Integer.valueOf((String)
spEdad.getSelectedItem()),R.mipmap.diagramascala));
//actualizar el adaptador
adaptador.notifyDataSetChanged();
}
});