Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 零参数构造函数。为什么,在哪里?_Java_Android - Fatal编程技术网

Java 零参数构造函数。为什么,在哪里?

Java 零参数构造函数。为什么,在哪里?,java,android,Java,Android,我有一个构造器: public class Question { String question; boolean correctAnswer; public Question(String question, boolean correctAnswer) { this.question = question; this.correctAnswer = correctAnswer; } } 在mainActivity中,我想显示问题,但我得到了零参数构造函数错误: p

我有一个构造器:

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);
公共类MainActivity扩展了ActionBarActivity{
巴顿迈斯;
按钮mNo;
文本视图mQuestion;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mYes=(按钮)findViewById(R.id.button2);
mNo=(按钮)findViewById(R.id.Button);
mQuestion=(TextView)findViewById(R.id.TextView);
//问题清单
ArrayList问题=新建ArrayList();
//添加问题
问题.加上(第一);
//展示问题。
setText((CharSequence)questions.get(0));
}
//创造问题
问题优先=新问题(“我是否理解此代码?”,错误);
我知道我必须在某个地方创建某种类型的空构造函数。可能回答了我的问题,但是我的英语不是最好的,我只是不知道如何实现我需要的代码。

问题。获取(0)
返回类型为
问题的对象。
无法将其转换为
字符序列

改变这个

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

注意如果
Question
类与
MainActivity
不在同一个包中,那么要么将
Question
的属性公开,要么为它们创建getter方法

还要确保您正在使用此代码

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

questions.add(first);
中使用它之前,否则您将在
mQuestion.setText(questions.get(0.question);
中获得
NullPointerException
这是java。然后您首先创建de对象,然后您可以调用它。根据您的代码,on方法onCreate不会退出名为first的对象,因为这是在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());

请发布错误消息的确切文本。另外,这是Java,不是C++注意ArrayList questions=new ArrayList();应该是new ArrayList();您在哪里有此代码
Question first=new Question(“我理解此代码吗?”,false);
?您正在
onCreate
中使用它。我添加了缺少的问题。错误不是说:无法将问题转换为java.lang.CharSequence。但是如果没有CharSequence,它将显示问题上未解决的方法。get(0)。请查看我的答案。它应该可以解决您的问题。
@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());
public String getQuestion() {
    return this.question;
}