3. 为ImageView添加一个onItemClick就可以解决,可以跳转到另外一个Activity等等

解决方案 »

  1.   

    输入框中填写完后,需要往hashmap的数据集中更新数据。
    imageview的事件在getview中重新定义就生效,不然是不生效的。
      

  2.   

    我也碰到过这样的问题,最后还是没解决,我查了资料,大概意思是这是由于android系统造成的,listview是一个循环,为了更少的开销资源,它永远只加载你当前屏幕上显示的内容,你如果滚动到下面没有加载过的内容上面,它不会重新生成需要的资源,而是用以前生成过的,所以你往下面滚动的时候就会有可能没有填写内容而出现内容,再滚动回去就可能导致以前填写过的东西莫名其妙消失了。
    就是这样,我到最后也没解决,有人知道如何解决这个问题请帮忙回答一下。在此同谢!
      

  3.   


    高手指点说:做一个全局变量类似于 list<Map<String,Integer>>之类的数据结构  将listview的item和edittext输入值绑定  点击的时候将键值记录,在getView的时候将数据还原 。大家有没有实现这种功能的代码啊?
      

  4.   

    我没时间做了,介绍你去看看这个http://mypyg.iteye.com/blog/738316
    我觉得他说得有道理
      

  5.   

    - -||lz是否自定义了listview的适配器?实现这种相对复杂或者更复杂的listview布局,是需要自定义适配器的,用自己的适配器,理论上任何形势的listview都是可以做出来的
      

  6.   

    package com.android.meteor;import java.util.List;import com.android.meteor.R;
    import com.android.meteor.MainImageAndText;import android.app.Activity;
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.TextView;public class MainListAdapter extends BaseAdapter {

    private List<MainImageAndText> list;
    @SuppressWarnings("unused")
    private ListView listView;
    private Activity activity;

    public MainListAdapter(Context context,List<MainImageAndText> list,ListView listView) {
    // TODO Auto-generated constructor stub
    this.list = list;
    this.listView = listView;
    this.activity = (Activity) context;
    } public int getCount() {
    // TODO Auto-generated method stub
    return list.size();
    } public Object getItem(int position) {
    // TODO Auto-generated method stub
    return list.get(position);
    } public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
    } public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ViewHolder viewHolder;
    if(convertView == null){
    LayoutInflater inflater = activity.getLayoutInflater();
    convertView = inflater.inflate(R.layout.main_list, null);
    inflater = null;
    viewHolder = new ViewHolder();
    viewHolder.setItem_image((ImageView) convertView.findViewById(R.id.item_image));
    viewHolder.setItem_mainText((TextView) convertView.findViewById(R.id.item_mainText));
    viewHolder.setItem_stateText((TextView) convertView.findViewById(R.id.item_stateText));
    convertView.setTag(viewHolder);
    }
    else{
    viewHolder = (ViewHolder) convertView.getTag();
    }
    MainImageAndText mainImageAndText = (MainImageAndText) this.getItem(position);
    //给UI界面各组件赋值
         if(mainImageAndText.getImage() != null){
         viewHolder.getItem_image().setBackgroundResource(mainImageAndText.getImage());
         }
    viewHolder.getItem_mainText().setText(mainImageAndText.getMainText());
    if(mainImageAndText.getStateText() != null){
    viewHolder.getItem_stateText().setText(mainImageAndText.getStateText());
    }
    return convertView;
    }

    //静态内部类,保证只有一个布局对象,节省内存
    private static class ViewHolder{
    private ImageView item_image;
    private TextView item_mainText;
    private TextView item_stateText;
    public ImageView getItem_image() {
    return item_image;
    }
    public void setItem_image(ImageView item_image) {
    this.item_image = item_image;
    }
    public TextView getItem_mainText() {
    return item_mainText;
    }
    public void setItem_mainText(TextView item_mainText) {
    this.item_mainText = item_mainText;
    }
    public TextView getItem_stateText() {
    return item_stateText;
    }
    public void setItem_stateText(TextView item_stateText) {
    this.item_stateText = item_stateText;
    }

    }}
    以上就是一个自定义的适配器,很久以前写的了,有点混乱- -||。List<MainImageAndText> list就相当于一个全局的数据容器,MainImageAndText是自定义类,类似HashMap,listview中每一条数据,都有一个MainImageAndText对象实例来保存它的数据,呃……大概就这样。
      

  7.   

    listView错乱  以前遇过  也是百度查的  楼主查查看吧
      

  8.   

    应该是你输入的数据没有存储,等你返回的时候或拉动listview的时候,都会重新加载数据的,你没有保存数据,所以原来的数据丢失了。
      

  9.   

    方法一:http://download.csdn.net/detail/admin_/5301795
    方法二:http://download.csdn.net/detail/admin_/5518285
    完美解决,自己看,有注释
      

  10.   

    http://blog.csdn.net/xiaanming/article/details/8536231很早就遇到过,希望对博主有帮助