2017-03-03 7 views
-4

Ich schaffe diese Klasse:Arraylist erhalten Element von Objekt - Java

public class Questions { 

    ArrayList<String> questionsList = new ArrayList<>(); 


    public Questions(String question,String answer) { 

     questionsList.add(question); 
     questionsList.add(answer); 

    } 

    public ArrayList<String> getQuestionsList() { 
     return questionsList; 
    } 
} 

und ich möchte es in den Arraylist:

ArrayList<Questions> questionsArrayList; 

questionsArrayList= new ArrayList(); 
     questionsArrayList.add(new Questions(getString(R.string.question1),(getString(R.string.answer1)))); 
     questionsArrayList.add(new Questions(getString(R.string.question2),(getString(R.string.answer2)))); 
     questionsArrayList.add(new Questions(getString(R.string.question3),(getString(R.string.answer3)))); 
     questionsArrayList.add(new Questions(getString(R.string.question4),(getString(R.string.answer4)))); 

Wie kann ich ( zum Beispiel) nennen R.string.question1 von questionArrayList.get(0); als TextView und R.string.answer1 als String festlegen, um die richtige Antwort zu überprüfen. Ich habe keine Ahnung, wie ich es trennen soll.

+0

http://stackoverflow.com/questions/2770321/what-is-a-raw-type -und-warum-sollte-nicht-wir-benutzen-es – azurefrog

+0

Für den Rekord: Ich habe deine Frage anfänglich falsch gelesen, meine erste Antwort war falsch; habe es inzwischen behoben. – GhostCat

Antwort

0

hier:

questionsArrayList.add(new Questions(getString(R.string.question1),(getString(R.string.answer1))) 

Sie können nicht add() mehrere Objekte in einem Aufruf.

Sie können entweder add(oneObject); oder etwas tun, wie addAll(Arrays.asList(oneObject, anotherObject, ....));

Und Anmerkung: Sie können nur die spezifischen Listentyp verwenden sollten, wenn Erstellen von Listen; Verwenden Sie an keiner anderen Stelle ausschließlich den List-Typ. wie

List<String> questions = new ArrayList<>(); 
0

Wenn Sie die Frage und Antwort aus Ihren Fragen Klasse zugreifen zu können, müssen Sie eine Getter-Funktion in Ihren Fragen Klasse erstellen. Zum Beispiel

Durch Hinzufügen dieser, können Sie jetzt auf die Frage und Antwort von jeder Instanz der Klasse Fragen zugreifen. Oder, mit Ihrem aktuellen Code, könnten Sie einfach getQuestionsList(). Get (0) usw. aufrufen. Ich persönlich würde meinen Code nicht so strukturieren, aber es liegt an Ihnen.

0

Es sieht so aus, als wäre Ihre Fragenklasse nur für die Beantwortung einer einzelnen Frage und einer einzigen Antwort eingerichtet. Es ist also nicht notwendig, sie in einer ArrayList zu speichern. Sie können sie einfach als Strings speichern und dann Getter/Setter verwenden, um auf die Frage und die Antwort zuzugreifen.

public class Questions { 

    private final String question; 
    private final String answer; 

    public Questions(String question,String answer) { 
     this.question = question; 
     this.answer = answer; 
    } 

    public String getQuestion() { 
     return this.question; 
    } 

    public String getAnswer() { 
     return this.answer; 
    } 
} 

Wenn Sie immer noch die Frage, wie eine Liste benötigt man die folgende Methode könnte hinzufügen:

public List<String> getQuestionsList() { 
    return Arrays.asList(question, answer); 
} 
Verwandte Themen