Proyectos de Subversion Android Microlearning

Rev

Rev 1 | Rev 5 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
package com.cesams.twogetskills.adapter;
2
 
3
import android.content.Context;
4
import android.os.Build;
5
import android.text.Html;
4 gabriel 6
import android.util.Log;
1 efrain 7
import android.view.LayoutInflater;
8
import android.view.View;
9
import android.view.ViewGroup;
10
import android.widget.RadioButton;
4 gabriel 11
import android.widget.TextView;
1 efrain 12
 
13
import androidx.recyclerview.widget.RecyclerView;
14
import com.cesams.twogetskills.R;
15
import com.cesams.twogetskills.entity.Answer;
16
import com.cesams.twogetskills.entity.Question;
17
import com.cesams.twogetskills.pojo.QuizResponse;
18
import java.util.List;
19
import com.codesgood.views.JustifiedTextView;
20
 
21
public class QuizSingleAnswerListViewAdapter extends RecyclerView.Adapter<QuizSingleAnswerListViewAdapter.ViewHolder> {
22
    private final static String TAG = "C2GS - QuizSingleAdapter";
23
    private Question mQuestion;
24
    private List<Answer> mAnswers;
25
    private List<QuizResponse> mQuizResponses;
26
    private LayoutInflater mInflater;
27
    private int selected = -1;
28
 
29
    // data is passed into the constructor
30
    public QuizSingleAnswerListViewAdapter(Context context, Question question,  List<Answer> answers, List<QuizResponse> quizResponses) {
31
        this.mInflater = LayoutInflater.from(context);
32
        this.mQuestion = question;
33
        this.mAnswers = answers;
34
        this.mQuizResponses = quizResponses;
35
    }
36
    // inflates the row layout from xml when needed
37
    @Override
38
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
39
        View view = mInflater.inflate(R.layout.fragment_quiz_single_answer_item, parent, false);
40
        return new ViewHolder(view);
41
    }
42
 
43
    // binds the data to the TextView in each row
44
    @Override
45
    public void onBindViewHolder(ViewHolder holder, int position) {
46
        Answer mAnswer = mAnswers.get(position);
47
 
4 gabriel 48
        Log.e("Aqui",""+mAnswer.getText());
49
        String contenido;
50
        contenido=mAnswer.getText();
51
 
52
        holder.mText.setText("" + Html.fromHtml(contenido, Html.FROM_HTML_MODE_COMPACT));
53
 
54
        holder.mRadioButton.setChecked(position == selected);
1 efrain 55
    }
56
 
57
    // total number of rows
58
    @Override
59
    public int getItemCount() {
60
        return mAnswers.size();
61
    }
62
 
63
 
64
    // stores and recycles views as they are scrolled off screen
65
    public class ViewHolder extends RecyclerView.ViewHolder  {
4 gabriel 66
        //JustifiedTextView mText;
67
        TextView mText;
1 efrain 68
        RadioButton mRadioButton;
69
 
70
        ViewHolder(View itemView) {
71
            super(itemView);
4 gabriel 72
            mText = itemView.findViewById(R.id.textView3);
1 efrain 73
            mRadioButton = (RadioButton) itemView.findViewById(R.id.fragment_quiz_single_answer_item_radio);
74
            mRadioButton.setOnClickListener(new View.OnClickListener() {
75
                @Override
76
                public void onClick(View view) {
77
                    selected = getAdapterPosition();
78
                    Answer answer = mAnswers.get(selected);
79
 
80
                    int position = -1;
81
                    for(int i = 0; i < mQuizResponses.size(); i++)
82
                    {
83
                        if(mQuestion.getUuid().equals(mQuizResponses.get(i).getQuestionUuid())){
84
                            position = i;
85
                            break;
86
                        }
87
                    }
88
 
89
 
90
 
91
                    if(position > -1) {
92
                        mQuizResponses.get(position).setAnswerUuid(answer.getUuid());
93
                        mQuizResponses.get(position).setPoints(answer.getCorrect().equalsIgnoreCase("y") ? mQuestion.getPoints() : 0);
94
                    } else {
95
                        QuizResponse quizResponse = new QuizResponse();
96
                        quizResponse.setAnswerUuid(answer.getUuid());
97
                        quizResponse.setQuestionUuid(mQuestion.getUuid());
98
                        quizResponse.setQuizUuid(mQuestion.getQuizUuid());
99
                        quizResponse.setValue(0);
100
                        quizResponse.setPoints(answer.getCorrect().equalsIgnoreCase("y") ? mQuestion.getPoints() : 0);
101
                        mQuizResponses.add(quizResponse);
102
                    }
103
 
104
 
105
                    notifyDataSetChanged();
106
                }
107
            });
108
        }
109
 
110
    }
111
 
112
    public void resetSelection()
113
    {
114
        selected = -1;
115
    }
116
 
117
    // convenience method for getting data at click position
118
    public Answer getItem(int id) {
119
        return mAnswers.get(id);
120
    }
121
 
122
 
123
}