2017-03-03 115 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); 
} 
相关问题