[英]AndroidViewModel has no zero argument constructor. How to solve this?
[英]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.