Unexpected error in Android Studio spinner

1

I'm trying to implement a Spinner, but at the time of deploying it only appears the first element of all that should appear in the spinner. For example, if it is a spinner of curricula of people in which it appears name photo and text, it would only appear to me when displaying only the first and not all. Here I leave my code:

// MAIN

package com.example.tonij.a4bimplementaelusomascorrientes;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
private ArrayList<Persona> listaDePersonas= new ArrayList<>();
private Spinner spinner;
private SpinnerPersonas sp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        llenarArray();

        spinner= (Spinner)findViewById(R.id.spinner);
        sp= new SpinnerPersonas(this, listaDePersonas);
        spinner.setAdapter(sp);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            }

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

            }
        });

    }
    public void llenarArray(){
        int[] arrayImagenes={R.drawable.persona1,R.drawable.persona2,R.drawable.persona3,R.drawable.persona4};
        String[] arrayNombres= {"Ana, Jonathan, Pablo, Alberto"};
        String[] arrayApellidos={"Sanchez","Losa","Santos","Marti"};
        String[] arrayEdad={"22","24","18","28"};
        String[] arrayEstudios={"Ninguno.","Teleco.","Bachiller.","Marketing."};
        String[] arrayTrabajos={"Ninguno.","Inspector de telecomunicaciones.","Dependiente.","Asistente telefonico."};

        for(int i=0; i<1; i++){
            listaDePersonas.add( new Persona(arrayImagenes[i],
                    arrayNombres[i],
                    arrayApellidos[i],arrayEdad[i],arrayEstudios[i],arrayTrabajos[i]));
        }


    }
}

// CLASS OF THE SPINNER

package com.example.tonij.a4bimplementaelusomascorrientes;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;

import java.util.ArrayList;

public class SpinnerPersonas extends ArrayAdapter<Persona> {
    public SpinnerPersonas(Context context, ArrayList<Persona> listaPersonas){
        super(context,0,listaPersonas);
    }

    @Override
    public View getView(int position, View convertView,ViewGroup parent) {
        return initView(position, convertView, parent);
    }

    @Override
    public View getDropDownView(int position,View convertView,ViewGroup parent) {
        return initView(position, convertView, parent);
    }
    public View initView(int position,View convertView,ViewGroup parent){
        if(convertView==null){
            convertView= LayoutInflater.from(getContext()).inflate(
                    R.layout.spinner,parent,false
            );
        }
        ImageView imagen= convertView.findViewById(R.id.imagenSpiner);
        Persona persona= getItem(position);

        if(persona!=null){
            imagen.setImageResource(persona.getImg());}
        return convertView;
    }
}

// CLASS PERSON (THE OBJECT THAT IMPLEMENTS THE SPINNER)

package com.example.tonij.a4bimplementaelusomascorrientes;

public class Persona {
    private int img;
    private String nombre, apellidos, edad, estudios, trabajo;

    public Persona(int img, String nombre, String apellidos, String edad, String estudios, String trabajo){
        this.img= img;
        this.nombre= nombre;
        this.apellidos= apellidos;
        this.edad= edad;
        this.estudios= estudios;
        this.trabajo= trabajo;
    }

    //GETTERS Y SETTERS
    public int getImg() {
        return img;
    }

    public void setImg(int img) {
        this.img = img;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public String getEdad() {
        return edad;
    }

    public void setEdad(String edad) {
        this.edad = edad;
    }

    public String getEstudios() {
        return estudios;
    }

    public void setEstudios(String estudios) {
        this.estudios = estudios;
    }

    public String getTrabajo() {
        return trabajo;
    }

    public void setTrabajo(String trabajo) {
        this.trabajo = trabajo;
    }

}

// SPINNER LAYOUT

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:orientation="vertical"
        android:layout_marginTop="15dp"
        android:layout_marginLeft="15dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nombre"
            android:textSize="25dp"
            android:textColor="#000"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Apellidos"
            android:textSize="25dp"
            android:textColor="#000"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Edad"
            android:textSize="25dp"
            android:textColor="#000"
            />
        <ImageView
            android:layout_height="100dp"
            android:layout_width="100dp"
            android:id="@+id/imagenSpiner"
            />


    </LinearLayout>

//LAYOUT DEL MAIN

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <Spinner
        android:layout_marginLeft="15dp"
        android:layout_marginTop="15dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/spinner"
        />

</LinearLayout>

MANY THANKS FROM ANTEMANO < 3

    
asked by elver 19.12.2018 в 18:03
source

1 answer

1

I recommend you review this cycle in class Main .

for(int i=0; i<1; i++){
    listaDePersonas.add( new Persona(arrayImagenes[i],
    arrayNombres[i],
    arrayApellidos[i],arrayEdad[i],arrayEstudios[i],arrayTrabajos[i]));
}

It's only done once and I think you should do it for the number of people you have in one of the arrangements above.

    
answered by 19.12.2018 / 18:53
source