2017-03-03 42 views
-4

我創建這個類:ArrayList中從對象中獲取的元素 - 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; 
    } 
} 

,我想將它添加到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)))); 

我怎麼能說( 例如)R.string.question1questionArrayList.get(0);設置爲TextView並將R.string.answer1設置爲字符串以檢查正確答案。我不知道如何分開它。

+0

http://stackoverflow.com/questions/2770321/what-is-a-raw-type -and-why-shouldnt-we-use-it – azurefrog

+0

備案:我最初誤解了你的問題;我的第一個答案是錯誤的;現在修復它。 – GhostCat

回答

0

這裏:

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

你不能的add()在一個呼叫多個對象。

您可以add(oneObject);或做類似addAll(Arrays.asList(oneObject, anotherObject, ....));

及注意事項:創建列表時,你應該只使用具體列表類型;在任何其他地方,只能使用List類型;像

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

如果你想能夠訪問你的問題類的問題和答案,你必須在你的問題類創建一個getter函數。例如

public String getQuestion() { 
    return questionsList.get(0); 
} 

public String getAnswer() { 
    return questionsList.get(1); 
} 

通過添加這些,您現在可以從任何類的問題訪問問題和答案。 或者,用你現在的代碼,你可以調用getQuestionsList()。get(0)等。我個人不會這樣構造我的代碼,但這取決於你。

0

它看起來像你的問題類只是設置來處理一個問題和一個答案。所以不需要將它們存儲在arrayList中。您可以將它們存儲爲字符串,然後使用getters/setter來訪問問題和答案。

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; 
    } 
} 

如果你仍然需要的問題,你可以添加以下方法列表:

public List<String> getQuestionsList() { 
    return Arrays.asList(question, answer); 
} 
相關問題