ошибка: несовместимые типы: выведенный тип не соответствует верхней границе (-ям) выведенный: INT # 1 - верхняя граница (-и): - PullRequest
0 голосов
/ 17 января 2020

Я действительно не знаю, как решить эту проблему (ошибка: несовместимые типы: выведенный тип не соответствует верхней границе (ям); выведен: INT # 1 верхняя граница (и): Giocatore [], Parcelable, где INT # 1 - это тип пересечения: INT # 1 расширяет Giocatore [], Parcelable).

Показывает ошибку в строке "Giocatore [] gio = intent.getParcelableExtra (" giocatori ");".

public class Giocatore implements Parcelable {

    private String nome;
    private String ruolo;
    private double valore;

    public Giocatore(String nome, String ruolo, double valore) {
        setNome(nome);
        setRuolo(ruolo);
        setValore(valore);
    }
    //getters and setters
    protected Giocatore(Parcel in) {
        nome = in.readString();
        ruolo = in.readString();
        valore = in.readDouble();
    }

    public static final Creator<Giocatore> CREATOR = new Creator<Giocatore>() {
        @Override
        public Giocatore createFromParcel(Parcel in) {
            return new Giocatore(in);
        }

        @Override
        public Giocatore[] newArray(int size) {
            return new Giocatore[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(nome);
        dest.writeString(ruolo);
        dest.writeDouble(valore);
    }
}

Класс "Squadra"

public class Squadra {

    private int componenti;
    private String coloreMaglia;
    private Giocatore[] squadra;

    public Squadra() {
        this.componenti = 5;
        this.coloreMaglia = null;
        squadra = new Giocatore[5];
    }

    public Giocatore[] getSquadra() {
        return this.squadra;
    }
}

Класс "SecondaPagina"

public class SecondaPagina extends AppCompatActivity  implements AdapterView.OnItemSelectedListener {

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

        final Giocatore[] giocatori = new Giocatore[10];

        Button next = findViewById(R.id.crea);
        Button procedi = findViewById(R.id.procedi);
        procedi.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
               //some code
               int pos = aggiungi(giocatori, new Giocatore(n, r, v)); //function "aggiungi" add an object "Giocatore" to the array "giocatori" and return the position where the object has been added (100% works)
               //some code
             }
        });
        next.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(SecondaPagina.this, TerzaPagina.class);
                intent.putExtra("giocatori", giocatori);
                startActivity(intent);
            }
        });
    }
}

public class TerzaPagina extends AppCompatActivity {

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

        Intent intent = getIntent();
        Giocatore[] gio = intent.getParcelableExtra("giocatori");
    }
}

ошибка: несовместимые типы: выведенный тип не соответствует выведенным верхним границам: INT # 1 верхняя граница (ы): Giocatore [], Parcelable, где INT # 1 является типом пересечения: INT # 1 расширяет Giocatore [], Parcelable

Показывает ошибку в строке "Giocatore [] gio = intent.getParcelableExtra ("giocatori"); ".

Пожалуйста, помогите мне, спасибо.

1 Ответ

0 голосов
/ 18 января 2020

Попробуйте использовать:

(Giocatore[]) intent.getParcelableArrayExtra("giocatori");

вместо

intent.getParcelableExtra(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...