2012-01-30 3 views
0

다른 배열의 이미지이기도 한 10 개의 질문에 대한 답변 인 배열에 10 개의 이미지가 있습니다.이미지를 사용한 안드로이드 다중 선택

10 개의 이미지가있는 상대적 레이아웃에 10 개의 이미지 버튼이 표시됩니다. 답변 배열은 answers []이고 질문 배열은 questions []입니다. 그것들은 서로 대응하며, 응답 [1]은 질문 [1]에 대한 대답이고, 대답 [4]는 질문 [4]에 대한 대답입니다. 나는 간단한 "for"문이 있는데 이는 for(int i=0; i<=9; i++)입니다.

한 번에 10 개의 질문이 하나씩 나오고 사용자가 대답하도록하겠습니다. 일시 중지하고 사용자가 질문에 대한 답을 클릭하게하려면 프로그램이 필요합니다. 그 "for"문으로 질문 [0] 인 첫 번째 질문이 이미지 뷰에 나타납니다. if 문을 사용하여, "이미지 [0]이있는 이미지 버튼을 클릭하면 이미지가 올바르게 표시되고 다른 것들을 나타내기를 원합니다. 그렇지 않으면 이미지가 틀리게 말하고 다른 것들을하길 원합니다"라고 말하고 싶습니다. 사용자가 화면의 아무 곳이나 클릭 할 때까지 일시 중지하고 싶습니다.

"for"문에서 사용자가 대답 할 수 있도록 일시 중지하는 데 도움을 줄 수있는 사람과 올바른 대답을 선택한 경우 올바른 내용을 나타내는 이미지를 표시 한 다음 다시 일시 중지 할 수있는 "if"문 사용자가 화면의 아무 곳이나 클릭 할 때까지? 감사!

그건 그렇고, 나는 그 질문 이미지가 매번 같은 이미지 뷰에 팝업되도록 분명히 이미지를 변경해야합니다.

+1

귀하의 질문은 기본적으로 귀하의 신청서를 작성하라고 요청하는 것입니다. Android 경험이 많지 않으므로 "Activity lifecycle"부터 시작하십시오. http://developer.android.com/reference/android/app/Activity.html – BitBank

답변

0

for 루프를 사용하여 원하는대로 프로그램 흐름을 제어 할 수 없습니다. Android의 사용자 인터페이스는 이벤트 중심이므로 질문에서 질문으로 이동하는 유일한 방법은 사용자가 버튼을 클릭 할 때 생성되는 이벤트에 반응하는 것입니다. 버튼을 찾아 Click 이벤트에 대한 이벤트 핸들러를 첨부하여 호출합니다 (onClick). 이는 View.OnClickListener 인터페이스의 일부입니다. 액티비티 클래스에 변수를 정의하여 현재 사용중인 질문을 저장하고이를 사용하여 사용자가 질문에 대답 할 때 사용할 수 있습니다. 귀하의 활동은 다음과 같이 보일 수 있습니다 :

public class QuestionActivity extends Activity implements View.OnClickListener { 

    public int currentQuestion = 0; 
    Image[] answers; 
    Image[] questions; 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     // Load questions and answers 
     setContentView(R.layout.mylayout); 
     final ImageButton button = (ImageButton)findViewById(R.id.mybutton); 
     button.setOnClickListener(this); 
    } 

    public void onClick(View view) 
    { 
     if (/* the answer is correct */) { 
      // happiness: show images, do what needs doing 
     } else { 
      // sadness: show other images, etc 
     } 
     currentQuestion++; 
    } 

}