簡體   English   中英

零參數構造函數。 為什么在哪里?

[英]zero argument constructor. Why and where?

我有一個構造函數:

public class Question {



String question;
boolean correctAnswer;


public Question(String question, boolean correctAnswer)
{
    this.question = question;
    this.correctAnswer = correctAnswer;
}

}

在mainActivity中,我想顯示問題,但出現零參數構造函數錯誤:

public class MainActivity extends ActionBarActivity {

Button mYes;
Button mNo;
TextView mQuestion;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mYes = (Button)findViewById(R.id.button2);
    mNo = (Button)findViewById(R.id.button);
    mQuestion = (TextView)findViewById(R.id.textView);
    //question list
    ArrayList<Question> questions = new ArrayList<>();
    //adding question
    questions.add(first);
    //show the question.
    mQuestion.setText((CharSequence) questions.get(0));


}
//Creating question
Question first = new Question("Do i understand this code?", false);

我知道我必須在某處創建某種空的構造函數。 http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html可能回答了我的問題,但是我不是英語水平最高的人,我只是不明白如何實現所需的代碼。

questions.get(0)返回一個類型為Question的對象。 您不能將其轉換為CharSequence

改變這個

mQuestion.setText((CharSequence) questions.get(0));

mQuestion.setText(questions.get(0).question);

注意:如果Question類與MainActivity不在同一個程序包中,則可以公開Question的屬性或為它們創建getter方法。

還要確保您正在使用此代碼

Question first = new Question("Do i understand this code?", false);

questions.add(first);中使用它之前 否則,您將在mQuestion.setText(questions.get(0).question);獲得NullPointerException mQuestion.setText(questions.get(0).question);

偏愛Rohit5k2編寫的內容。

這是java。 然后,您首先創建對象,然后您可以調用它。 根據您的代碼,on方法onCreate不會退出首先調用的對象,因為它是在onCreate方法之外創建的:

@Override
protected void onCreate(Bundle savedInstanceState) {
...
//Creating question
Question first = new Question("Do i understand this code?", false);
//question list
ArrayList<Question> questions = new ArrayList<>();
//adding question
questions.add(first);
//show the question.
mQuestion.setText((CharSequence) questions.get(0).getQuestion());

其中, getQuestion()是Question類的方法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM