import java.util.ArrayList;
import java.util.HashMap;
import com.gta.virtualsimulation.R;
import com.gta.virtualsimulation.entity.EvaluationBean;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;
public class GroupAdapter extends BaseAdapter {
private Context context;
private ArrayList<EvaluationBean> lists;
private HashMap<String,String> answer = new HashMap<String, String>();
HashMap<Integer,View> convertViewList = new HashMap<Integer,View>();
public GroupAdapter(Context context,ArrayList<EvaluationBean> lists){
this.context = context;
this.lists = lists;
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(null == convertViewList.get(position)){
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.testing_item_layout, null);
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.groups = (RadioGroup) convertView.findViewById(R.id.group);
convertViewList.put(position, convertView);
convertView.setTag(holder);
}else{
convertView = convertViewList.get(position);
holder = (ViewHolder) convertView.getTag();
}
EvaluationBean bean = lists.get(position);
holder.title.setText(isEmpty(bean.getTitle()));
// if(null == holder.title.getTag()){
// holder.title.setTag(isEmpty(bean.getTitle()));
// holder.title.setText(isEmpty(bean.getTitle()));
// }else if(null != holder.title.getTag() && isEmpty(bean.getTitle()).equals(holder.title.getTag())){
// }
//避免选项重复加载
if(holder.groups.getChildCount() == 0)
makeRadioBtn(holder.groups,bean);
return convertView;
}
class ViewHolder{
TextView title;
RadioGroup groups;
}
/**
* 动态添加radioButton
* @param group
* @param options
*/
private void makeRadioBtn(RadioGroup group,final EvaluationBean bean){
String[] list = bean.getOptions().split(",");
for(int i=0; i< list.length; i++)
{
RadioButton tempButton = new RadioButton(context);
// tempButton.setBackgroundResource(R.drawable.xxx); // 设置RadioButton的背景图片
// tempButton.setButtonDrawable(R.drawable.xxx); // 设置按钮的样式
tempButton.setPadding(10, 0, 0, 0); // 设置文字距离按钮四周的距离
tempButton.setText(list[i]);
group.addView(tempButton, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
}
group.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
RadioButton tempButton = (RadioButton)group.findViewById(checkedId); // 通过RadioGroup的findViewById方法,找到ID为checkedID的RadioButton
// 以下就可以对这个RadioButton进行处理了
// Toast.makeText(context, "您选择了 = " + tempButton.getText().toString(), Toast.LENGTH_LONG).show();
answer.put(bean.getTitle(), bean.getQuestionId()+"_" +tempButton.getText().toString());
}
});
}
public static String isEmpty(String str) {
String value = "";
if (null == str.trim())
return value;
else
return str;
}
public HashMap<String, String> getAnswer() {
return answer;
}
public void setAnswer(HashMap<String, String> answer) {
this.answer = answer;
}
}
解决listView数据重复加载
最新推荐文章于 2022-07-15 18:02:03 发布