大佬教程收集整理的这篇文章主要介绍了android – 如何在列表视图中选择多个radiobuttons并使用它们的位置安排在arraylist中,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
提前致谢!
这是我的适配器类,请查看它.
公共类Customlistadapter扩展BaseAdapter {
private Integer[] listData; int SELEctedPosition = -1; private LayoutInflater mInflater; public Customlistadapter(Context context,Integer[] listData) { super(); this.listData = listData; mInflater = LayoutInflater.from(context); validdata = new ArrayList<String>(); int size = values.length; Log.d("size","" + sizE); for (int i = 0; i < size; i++) { checked.add(false); validdata.add(""); checkeddata.add(""); } } @Override public int getCount() { return listData.length; } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } public View getView(final int position,View convertView,ViewGroup parent) { final ViewHolder holder; View view = convertView; if (view == null) { view = mInflater.inflate(R.layout.items,null); holder = new ViewHolder(); holder.headlineView = (TextView) view .findViewById(R.id.textview1); holder.r1 = (RadioButton) view.findViewById(R.id.radio0); holder.r2 = (RadioButton) view.findViewById(R.id.radio1); holder.r3 = (RadioButton) view.findViewById(R.id.radio2); holder.r4 = (RadioButton) view.findViewById(R.id.radio3); holder.rp = (RadioGroup) view.findViewById(R.id.rgOpinion); holder.rp.setTag(position); view.setTag(holder); holder.rp .setOncheckedchangelistener(new Oncheckedchangelistener() { public void oncheckedChanged(RadioGroup group,int checkedId) { // TODO Auto-generated method stub View radioButton = group .findViewById(checkedId); final String radioId = String.valueOf(group .indexOfChild(radioButton)); final int radio = group .indexOfChild(radioButton); String radioid; Log.d("radioid","" + radioId); if (holder.r1.ischecked()) { holder.r1 .setchecked(position == SELEctedPosition); holder.r1.setTag(position); holder.r1.setchecked(true); holder.r1 .setOnClickListener(new View.onClickListener() { @Override public void onClick(View view) { SELEctedPosition = (Integer) view .getTag(); notifyDataSetChanged(); Log.d("SELEctesxsxad","" + SELEctedPosition); String s = listData[SELEctedPosition] .toString(); checked.add( SELEctedPosition,truE); Log.d("valid","" + checked); } }); radioid = "A"; } else if (holder.r2.ischecked()) { holder.r2 .setchecked(position == SELEctedPosition); holder.r2.setTag(position); holder.r2.setchecked(true); holder.r2 .setOnClickListener(new View.onClickListener() { @Override public void onClick(View view) { SELEctedPosition = (Integer) view .getTag(); notifyDataSetChanged(); Log.d("SELEctesxsxad","" + SELEctedPosition); validdata.add( SELEctedPosition,radioId); Log.d("valid","" + validdata); } }); radioid = "B"; } else if (holder.r3.ischecked()) { holder.r3 .setchecked(position == SELEctedPosition); holder.r3.setTag(position); holder.r3.setchecked(true); holder.r3 .setOnClickListener(new View.onClickListener() { @Override public void onClick(View view) { SELEctedPosition = (Integer) view .getTag(); notifyDataSetChanged(); Log.d("SELEctesxsxad","" + validdata); } }); radioid = "C"; } else if (holder.r4.ischecked()) { holder.r4 .setchecked(position == SELEctedPosition); holder.r4.setTag(position); holder.r4.setchecked(true); holder.r4 .setOnClickListener(new View.onClickListener() { @Override public void onClick(View view) { SELEctedPosition = (Integer) view .getTag(); notifyDataSetChanged(); Log.d("SELEctesxsxad","" + validdata); } }); radioid = "D"; } } }); } else { holder = (ViewHolder) view.getTag(); } holder.rp = (RadioGroup) view.findViewById(R.id.rgOpinion); holder.r1 = (RadioButton) view.findViewById(R.id.radio0); holder.r2 = (RadioButton) view.findViewById(R.id.radio1); holder.r3 = (RadioButton) view.findViewById(R.id.radio2); holder.r4 = (RadioButton) view.findViewById(R.id.radio3); holder.headlineView.setText(listData[position].toString()); holder.r1.getTag(position); if (holder.r1.ischecked()) { holder.r1.setchecked(true); } else if (holder.r2.ischecked()) { holder.r2.setchecked(true); } else if (holder.r3.ischecked()) { holder.r3.setchecked(true); } else if (holder.r4.ischecked()) { holder.r4.setchecked(true); } return view; } public class ViewHolder { TextView headlineView; RadioGroup rp; RadioButton r1,r2,r3,r4; }
@Override public View getView(int position,ViewGroup parent) { ViewHolder mHolder; // if (convertView == null) { mHolder = new ViewHolder(); convertView = LayoutInflater.from(mContext).inflate(R.layout.listitems,null); mHolder.mTextView = (TextView) convertView.findViewById(R.id.textView1); mHolder.mGroup = (RadioGroup) convertView.findViewById(R.id.radioGroup1); mHolder.mRedButton1 = (RadioButton) convertView.findViewById(R.id.radio0); mHolder.mRedButton2 = (RadioButton) convertView.findViewById(R.id.radio1); mHolder.mRedButton3 = (RadioButton) convertView.findViewById(R.id.radio2); // convertView.setTag(mHolder); // } // else { // mHolder = (ViewHolder) convertView.getTag(); // } final MyQuestion mMyQuestion = myQuestions.get(position); mHolder.mTextView.setText(mMyQuestion.getmQuestion()); int mQuestion_answed = mMyQuestion.getQuestion_answed(); mHolder.mGroup.setOncheckedchangelistener(null); if (mQuestion_answed != 0) { switch (mQuestion_answed) { case 1: mHolder.mRedButton1.setchecked(true); break; case 2: mHolder.mRedButton2.setchecked(true); break; case 3: mHolder.mRedButton3.setchecked(true); break; default: break; } } // listener for radioGroup mHolder.mGroup.setOncheckedchangelistener(new Oncheckedchangelistener() { @Override public void oncheckedChanged(RadioGroup group,int checkedId) { switch (checkedId) { case R.id.radio0: mMyQuestion.setQuestion_answed(1); break; case R.id.radio1: mMyQuestion.setQuestion_answed(2); break; case R.id.radio2: mMyQuestion.setQuestion_answed(3); break; default: break; } } }); return convertView; }
// VIewHolder
private class ViewHolder { TextView mTextView; RadioGroup mGroup; RadioButton mRedButton1,mRedButton2,mRedButton3; }
// bean类
public class MyQuestion { private String mQuestion; privatE int question_answed; public MyQuestion() { super(); } public String getmQuestion() { return mQuestion; } public void setmQuestion(String mQuestion) { this.mQuestion = mQuestion; } public int getQuestion_answed() { return question_answed; } public void setQuestion_answed(int question_answed) { this.question_answed = question_answed; }
}
这是我正在使用的ArrayList
private ArrayList<MyQuestion> mQuestionsList = new ArrayList<MyQuestion>();
以上是大佬教程为你收集整理的android – 如何在列表视图中选择多个radiobuttons并使用它们的位置安排在arraylist中全部内容,希望文章能够帮你解决android – 如何在列表视图中选择多个radiobuttons并使用它们的位置安排在arraylist中所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。