2016-07-22 13 views
1

私はTextViewRecyclerViewを持っています。これは質問と4つの回答で構成されています。 RadioButtonが正しい答えであるかどうかを知る最良の方法は何ですか?回答の数はどれくらいですか?RecyclerView内のRadioButton

これは私のRecyclerView.Adapterクラスです:

public class QuestionarioAdapter extends RecyclerView.Adapter <QuestionarioAdapter.MyViewHolder> { 

private List<Questionario> questionarioList; 

public class MyViewHolder extends RecyclerView.ViewHolder { 
    public TextView perg; 
    public RadioButton alt1, alt2, alt3,alt4; 

    public MyViewHolder(View view) { 
     super(view); 
     perg = (TextView) view.findViewById(R.id.tvQuest); 
     alt1 = (RadioButton) view.findViewById(R.id.alt1); 
     alt2 = (RadioButton) view.findViewById(R.id.alt2); 
     alt3 = (RadioButton) view.findViewById(R.id.alt3); 
     alt4 = (RadioButton) view.findViewById(R.id.alt4); 
    } 
} 


public QuestionarioAdapter(List<Questionario> questionarioList) { 
    this.questionarioList = questionarioList; 
} 

@Override 
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View itemView = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.questionario_perguntas, parent, false); 

    return new MyViewHolder(itemView); 
} 

@Override 
public void onBindViewHolder(MyViewHolder holder, int position) { 
    Questionario questionario = questionarioList.get(position); 
    holder.perg.setText(questionario.getQuestao()); 
    holder.alt1.setText(questionario.getAlt1()); 
    holder.alt2.setText(questionario.getAlt2()); 
    holder.alt3.setText(questionario.getAlt3()); 
    holder.alt4.setText(questionario.getAlt4()); 

} 

@Override 
public int getItemCount() { 
    return questionarioList.size(); 
} 
} 

これは私のList<>クラスです:

public class Questionario { 
private String questao, alt1, alt2, alt3, alt4, altCerta; 


public Questionario(String questao, String alt1, String alt2, String alt3, String alt4, String altCerta) { 
    this.questao = questao; 
    this.alt2 = alt2; 
    this.alt1 = alt1; 
    this.alt3 = alt3; 
    this.alt4 = alt4; 
    this.altCerta = altCerta; 
} 

public String getQuestao() { 
    return questao; 
} 

public void setQuestao(String questao) { 
    this.questao = questao; 
} 

public String getAlt1() { 
    return alt1; 
} 

public void setAlt1(String alt1) { 
    this.alt1 = alt1; 
} 

public String getAlt2() { 
    return alt2; 
} 

public void setAlt2(String alt2) { 
    this.alt2 = alt2; 
} 

public String getAlt3() { 
    return alt3; 
} 

public void setAlt3(String alt3) { 
    this.alt3 = alt3; 
} 

public String getAlt4() { 
    return alt4; 
} 

public void setAlt4(String alt4) { 
    this.alt4 = alt4; 
} 

public String getAltCerta() { 
    return altCerta; 
} 

public void setAltCerta(String altCerta) { 
    this.altCerta = altCerta; 
} 
} 

これは質問を示しているMainClass次のとおりです。

private List<Questionario> questionarioList = new ArrayList<>(); 
private RecyclerView recyclerView; 
private QuestionarioAdapter mAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_perguntas); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 


    recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 

    mAdapter = new QuestionarioAdapter(questionarioList); 
    RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); 
    recyclerView.setLayoutManager(mLayoutManager); 
    recyclerView.setItemAnimator(new DefaultItemAnimator()); 
    recyclerView.addItemDecoration(new Divisor(this, LinearLayoutManager.VERTICAL)); 
    recyclerView.setAdapter(mAdapter); 




    prepareQuestionario(); 




    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_perguntas, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 


private void prepareQuestionario() { 
    Questionario questionario = new Questionario("Pergunta 1", "Alt 1","Alt 2","Alt 3","Alt 4", "1"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 2", "Alt 1","Alt 2","Alt 3","Alt 4", "2"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 3", "Alt 1","Alt 2","Alt 3","Alt 4", "3"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 4", "Alt 1","Alt 2","Alt 3","Alt 4", "1"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 5", "Alt 1","Alt 2","Alt 3","Alt 4", "2"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 6", "Alt 1","Alt 2","Alt 3","Alt 4", "3"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 7", "Alt 1","Alt 2","Alt 3","Alt 4", "4"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 8", "Alt 1","Alt 2","Alt 3","Alt 4", "2"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 9", "Alt 1","Alt 2","Alt 3","Alt 4", "2"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 10", "Alt 1","Alt 2","Alt 3","Alt 4", "2"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 11", "Alt 1","Alt 2","Alt 3","Alt 4", "1"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 12", "Alt 1","Alt 2","Alt 3","Alt 4", "2"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 13", "Alt 1","Alt 2","Alt 3","Alt 4", "4"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 14", "Alt 1","Alt 2","Alt 3","Alt 4", "3"); 
    questionarioList.add(questionario); 

    questionario = new Questionario("Pergunta 15", "Alt 1","Alt 2","Alt 3","Alt 4", "3"); 
    questionarioList.add(questionario); 

    mAdapter.notifyDataSetChanged(); 
} 




} 

I'LLタイマーを作成し、答えを得る。しかし、RadioButtonから正解を得るにはどうすればよいですか?

答えて

0

まず、そのようなあなたのRecyclerView.Adapterクラスでこれらの変数を作成します。

private int question = 1; 
private int correct; 
private int incorrect; 

は、このようなあなたのRadioButton秒ごとに、onClickListenerを作成します。

holder.alt1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (question == 1) { 
      // let's say this is correct 
      question++; 
      correct++; 
     } 

     else if (question == 2) { 
      // let's say this is incorrect 
      question++; 
      incorrect++; 
     } 

     // ...  
    } 
}); 

は、あなたがのために上記のコードを記述していることを確認しますRadioButtonのそれぞれについて、それぞれの質問が使用されていることを確認してください。あなたの行方を見てください。

関連する問題