Vorbei ArrayList von Objekten, die durch Vorsatz - Java (Android)

Ich versuche an einem ArrayList mit Objekten, die durch eine Absicht, aber kann es nicht funktionieren. Hier ist, was ich habe:

public class QuestionView extends Activity {

    //variables and other methods...

    public void endQuiz() {
        Intent intent = new Intent(QuestionView.this, Results.class);
        intent.putExtra("correctAnswers", correctAnswers);
        intent.putExtra("wrongAnswers", wrongAnswers);
        intent.putParcelableArrayListExtra("queries", queries);
        startActivity(intent);
    }
}

Intents empfangen werden hier:

public class Results extends Activity {

    int cAnswers;
    int wAnswers;
    ArrayList<Question> qs;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.resultsmain);

        cAnswers = getIntent().getIntExtra("correctAnswers", -1);
        wAnswers = getIntent().getIntExtra("wrongAnswers", -1);

        qs = getIntent().getParcelableArrayListExtra("queries");

                    //more code...
    }
}

Den zwei ints, correctAnswer und wrongAnswers, empfangen werden und ich Sie verwenden können. Die ArrrayList kommt nicht durch. Keine Fehler in der endQuiz () - Methode, aber der 'qs = getIntent().getParcelableArrayListExtra("Abfragen");' wirft einen Fehler und sagen, "Bound Mismatch."

Jede Hilfe zu diesem wird sehr geschätzt!

Frage Klasse:

public class Question {
    String a1;
    String a2;
    String a3;
    String a4;
    int correctAnswer;
    String query;
    int selectedAnswer;
    boolean correctness;

    public Question() {
    }

    public Question(String a1, String a2, String a3, String a4, int correctAnswer, String query, int selectedAnswer, boolean correctness) {
        this.a1 = a1;
        this.a2 = a2;
        this.a3 = a3;
        this.a4 = a4;
        this.correctAnswer = correctAnswer;
        this.query = query;
        this.selectedAnswer = selectedAnswer;
        this.correctness = correctness;
    }
    }
Hat Ihr Question Klasse implementieren Parcelable?
Nein ... das ist, warum er ist casting ... (ArrayList<? extends Parcelable>) queries); 🙂 das wird sicherlich nicht helfen
Können wir sehen, was der Typ von Ihr Abfragen ArrayList tatsächlich aussieht? Ich meine, die Klasse...
aber er ist nicht immer class cast exception, die neugierig ist...
java generics ... ähnlicher code wird nicht kompilieren, in C#, aber in java ... ArrayList<Object> a = null; ArrayList<? extends Parcelable> b = (ArrayList<? extends Parcelable>) a; funktioniert ... nur mit warrning Unchecked cast from ArrayList<Object> to ArrayList<? extends Parcelable> .... in java zur Laufzeit wissen Sie nicht generischen Typ

InformationsquelleAutor Matt | 2012-12-04

Schreibe einen Kommentar