目前页面显示没有问题,当前页面选择spinner也可以正常显示不过只要滑动页面就会让spinner的数据重置,这个问题需要怎么来处理?希望能给出相应的处理方法代码或者思考方向,感谢!

解决方案 »

  1.   

    public class AssessLVAdapter extends BaseAdapter {
    private Context context;
    private List<Map<String, Object>> list; public AssessLVAdapter(Context context, List<Map<String, Object>> list) {
    this.context = context;
    this.list = list; } @Override
    public int getCount() {
    return list.size();
    } @Override
    public Object getItem(int position) {
    return list.get(position);
    } @Override
    public long getItemId(int position) {
    return position;
    } @Override
    public View getView(final int position, View convertView,
    ViewGroup parent) {
    convertView = LayoutInflater.from(context).inflate(
    R.layout.assess_item, null);
    tv_assess_item = (TextView) convertView
    .findViewById(R.id.tv_assess_item);
    sp_assess_item = (Spinner) convertView
    .findViewById(R.id.sp_assess_item);
    tv_assess_item.setText((String) list.get(position).get("project"));
    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(
    context, android.R.layout.simple_spinner_item,
    list_str.get(position)); spinnerAdapter
    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_assess_item.setAdapter(spinnerAdapter);
    sp_assess_item
    .setOnItemSelectedListener(new OnItemSelectedListener() { @Override
    public void onItemSelected(AdapterView<?> parent,
    View view, int position, long id) {
    } @Override
    public void onNothingSelected(AdapterView<?> parent) { }
    });
    return convertView;
    }
    }我的adapter代码是这样的
      

  2.   


    public class AssessLVAdapter extends BaseAdapter {
    private Context context;
    private List<Map<String, Object>> list;
                    private Map<Integer,Integer> map = new HashMap<Integer,Integer>(); public AssessLVAdapter(Context context, List<Map<String, Object>> list) {
    this.context = context;
    this.list = list;
                            for(int i = 0 ; i < list.size();i++) {
                             map.put(i,0); //
                            } } @Override
    public int getCount() {
    return list.size();
    } @Override
    public Object getItem(int position) {
    return list.get(position);
    } @Override
    public long getItemId(int position) {
    return position;
    } @Override
    public View getView(final int position1, View convertView,
    ViewGroup parent) {
    convertView = LayoutInflater.from(context).inflate(
    R.layout.assess_item, null);
    tv_assess_item = (TextView) convertView
    .findViewById(R.id.tv_assess_item);
    sp_assess_item = (Spinner) convertView
    .findViewById(R.id.sp_assess_item);
    tv_assess_item.setText((String) list.get(position).get("project"));
    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(
    context, android.R.layout.simple_spinner_item,
    list_str.get(position)); spinnerAdapter
    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_assess_item.setAdapter(spinnerAdapter);
    sp_assess_item
    .setOnItemSelectedListener(new OnItemSelectedListener() {
                                   
    @Override
    public void onItemSelected(AdapterView<?> parent,
    View view, int position, long id) {
      map.put(position1,position);
    } @Override
    public void onNothingSelected(AdapterView<?> parent) { }
    });
    return convertView;
    }
    }
    sp_assess_item.setSelection(map.get(position1));
      

  3.   

    我在BaseAdapter中放spinner有这个android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application错误 怎么你怎么解决的。