안드로이드에 대한 간단한 퀴즈를 만들려고합니다.자바 객체 참조는 어떻게 사용합니까?
개체 참조를 사용해야한다고 들었습니다. 나는 그것을 할 방법을 아주 확실하지 않다
이 내가 ... 지금까지 질문하고 정확하고 잘못된 답을 캡슐화
package com.aleksei.etb;
public class ETBetaActivity extends Activity implements View.OnClickListener {
private String[] questions =
{"Q1",
"Q2",
"Q3",
"Q4",
"Q5", //5
"Q6",
"Q7",
"Q8",
"Q9",
"Q10" //10
};
private String[] answers_correct =
{"Correct answer - 1",
"Correct answer - 2",
"Correct answer - 3",
"Correct answer - 4",
"Correct answer - 5",
"Correct answer - 6",
"Correct answer - 7",
"Correct answer - 8",
"Correct answer - 9",
"Correct answer - 10"
};
private String[][] answers_wrong =
{ {"Q1-1", "Q1-2" , "Q1-3"},
{"Q2-1", "Q2-2" , "Q2-3"},
{"Q3-1", "Q3-2" , "Q3-3"},
{"Q4-1", "Q4-2" , "Q4-3"},
{"Q5-1", "Q5-2" , "Q5-3"},
{"Q6-1", "Q6-2" , "Q6-3"},
{"Q7-1", "Q7-2" , "Q7-3"},
{"Q8-1", "Q8-2" , "Q8-3"},
{"Q9-1", "Q9-2" , "Q9-3"},
{"Q10-1", "Q10-2" , "Q10-3"}
};
private int counter = 0;
public Button answer_1,
answer_2,answer_3,
answer_4,skip;
public TextView question_tv,
tip_tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getData();
quizBegin();
}
public static int getResults(){
return 5;
}
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.button5: //main
break;
case R.id.button1: //answer_1
break;
case R.id.button2: //answer_2
break;
case R.id.button3: //answer_3
break;
case R.id.button4: //answer_3
break;
}
}
private void getData(){
//Everything
skip = (Button) findViewById(R.id.button5);
answer_1 = (Button) findViewById(R.id.button1);
answer_2 = (Button) findViewById(R.id.button2);
answer_3 = (Button) findViewById(R.id.button3);
answer_4 = (Button) findViewById(R.id.button4);
question_tv = (TextView) findViewById(R.id.question);
tip_tv = (TextView) findViewById(R.id.answ1);
//Buttons
skip.setOnClickListener(this);
answer_1.setOnClickListener(this);
answer_2.setOnClickListener(this);
answer_3.setOnClickListener(this);
answer_4.setOnClickListener(this);
//Text
skip.setText("Begin!");
answer_4.setText("");
answer_3.setText("");
answer_2.setText("");
answer_1.setText("");
tip_tv.setText("");
}
private void quizBegin(){
String question = Question.(questions[counter], answers_correct[counter],
answers_wrong[counter],counter); //error here.
//What am I suppose to do??
// How to use an object reference??
// Help please!
question_tv.setText("");
counter++;
}
}
질문 클래스를, 무슨 짓을했는지입니다.
public class Question {
private String question;
private String correctAnswer;
private List<String> incorrectAnswers;
private int counter = 0;
public Question(final String question, final String correctAnswer,
final String[] incorrectAnswers, int counter) {
// TODO: empty strings/nulls checks
this.question = question;
this.correctAnswer = correctAnswer;
this.incorrectAnswers = Arrays.asList(incorrectAnswers);
}
public List<String> getPossibleAnswers() {
final List<String> result = new ArrayList<String>();
result.addAll(incorrectAnswers);
result.add(correctAnswer);
Collections.shuffle(result);
return result;
}
public boolean isCorrectAnswer(final String answer) {
if (answer.equals(correctAnswer)) {
return true;
}
return false;
}
public String getQuestion() {
return question;
}
}
당신이하고 싶은 일을 명확히하고 이것을 코드 덤프로 사용하지 마십시오. –
나는 그것을 알아 냈다. 질문과 비슷한 형태로 보였다. q_class = 새로운 질문 (질문 [counter], answers_correct [counter], \t \t \t \t answers_wrong [counter], counter); \t \t \t \t 문자열 질문 = q_class.getQuestion(); \t \t \t \t question_tv.setText (질문); 예? – Alex
질문에 대해 혼란 스러웠던 것이 오해의 소지가 있다면 [object instantiation'] (http://searchcio-midmarket.techtarget.com/definition/instantiation) (자세한 내용은 내 질문에 편집으로 추가됨) . –