private List<String> mStrings = new ArrayList<>(50);
public void selectAnswer(int position, String dto) {
mStrings.set(position, dto);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start_task_activity);
initView();
initData();
for (int i = 0; i < 50; i++) {
mStrings.add("");
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.submit:
final int id = getIntent().getIntExtra("id", 0);
final String orderOn = getIntent().getStringExtra("orderOn");
final String orderTheme = getIntent().getStringExtra("orderTheme");
taskAnswer = new ArrayList<>();
for (int i = 0; i < mList.size(); i++) {
TTaskAnswer answer = new TTaskAnswer();
answer.setQuestionMark(mList.get(i).getQuestionMark());
String s = mStrings.get(i);
if (TextUtils.isEmpty(s)) {
Toast.makeText(StartTaskActivity.this, "还有题目未作答", Toast.LENGTH_SHORT).show();
return;
}
answer.setTheAnswer(mStrings.get(i));
taskAnswer.add(answer);
}
Log.d("题目答案", taskAnswer.toString());
if (!TextUtils.isEmpty(mImageUrlsStr)) {
mStartTaskPresenter.successStartTask(mToken, id, orderOn, orderTheme, mImageUrlsStr, taskAnswer);
submit.setEnabled(false);
} else {
Toast.makeText(StartTaskActivity.this, "请拍照", Toast.LENGTH_SHORT).show();
}
break;
}
}
适配器:
private StartTaskActivity mActivity;
//单选
singleViewHolder.rg_content.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.rb_one:
mActivity.selectAnswer(position, "A");
break;
case R.id.rb_two:
mActivity.selectAnswer(position, "B");
break;
case R.id.rb_three:
mActivity.selectAnswer(position, "C");
break;
case R.id.rb_four:
mActivity.selectAnswer(position, "D");
break;
}
}
});
//多选
moreViewHolder.cb_one.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//这样写有时候会出现答案拼接错误的情况
// if(isChecked){
// answer += "A" + ",";
// Log.d("凉城适配器多选1", answer);
// }else{
// answer = "";
// }
String answer = formatAnswer(moreViewHolder.cb_one, moreViewHolder.cb_two, moreViewHolder.cb_three, moreViewHolder.cb_four);
mActivity.selectAnswer(position, answer);
}
});
private String formatAnswer(CheckBox one, CheckBox two, CheckBox three, CheckBox four) {
StringBuilder sb = new StringBuilder();
if (one.isChecked()) {
sb.append("A");
}
if (two.isChecked()) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append("B");
}
if (three.isChecked()) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append("C");
}
if (four.isChecked()) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append("D");
}
return sb.toString();
}
//文本
textViewHolder.text_answer.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mActivity.selectAnswer(position, textViewHolder.text_answer.getText().toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});