package com.moez.QKSMS.ui.settings; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import com.moez.QKSMS.R; import com.moez.QKSMS.ui.view.QKEditText; import com.moez.QKSMS.ui.view.QKTextView; import java.util.ArrayList; import java.util.List; public class QKResponseAdapter extends ArrayAdapter<String> { private List<String> mResponses = new ArrayList<>(); public QKResponseAdapter(Context context, int resource, List<String> objects) { super(context, resource, objects); mResponses.addAll(objects); } @Override public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder vh; if (convertView == null) { convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item_qk_response, null); vh = new ViewHolder(); vh.mResponseIndex = (QKTextView) convertView.findViewById(R.id.response_index); vh.mResponse = (QKEditText) convertView.findViewById(R.id.response); convertView.setTag(vh); } else { vh = (ViewHolder) convertView.getTag(); } vh.position = position; vh.mResponseIndex.setText(Integer.toString(position + 1)); vh.mResponse.setText(mResponses.get(position)); vh.mResponse.setTextChangedListener(new QKEditText.TextChangedListener() { @Override public void onTextChanged(CharSequence s) { mResponses.remove(vh.position); mResponses.add(vh.position, s.toString()); } }); return convertView; } public List<String> getResponses() { return mResponses; } @Override public int getCount() { return mResponses.size(); } } class ViewHolder { int position; QKTextView mResponseIndex; QKEditText mResponse; }