当前位置:编程学习 > wap >>

Android开发: ListView中EditText、ImageView 的几个问题,求高人指点!

1、ListView 控件中每行上面都有一个EditText,上面输入值之后,滚动屏幕,发现没有填写的EditText 也有值了,之前填写过的值没有了。
2、ListView 控件中每行上面都有一个EditText,在EditText上面输入值之后,怎么可以遍历ListView 的每一行,取到之前输入的值。
3、ListView 控件中每行上面都有一个ImageView,点击ImageView 的时候跳转到新的页面?

小弟新学 Android开发 跪求高手指点!!! --------------------编程问答--------------------

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

就是上面那个页面,点击 右侧 图片 跳转到新的页面。
文本框中输入内容后,拉动滚动条,不让之前输入的数字丢失。
遍历每一行 获取 文本框中输入的内容,保存起来。 --------------------编程问答-------------------- 输入框中填写完后,需要往hashmap的数据集中更新数据。
imageview的事件在getview中重新定义就生效,不然是不生效的。 --------------------编程问答--------------------
引用 3 楼 danielinbiti 的回复:
输入框中填写完后,需要往hashmap的数据集中更新数据。
imageview的事件在getview中重新定义就生效,不然是不生效的。
 朋友你那里有这方面的例子吗, 小弟是个初学者,或者能贴些代码吗? --------------------编程问答-------------------- 我也碰到过这样的问题,最后还是没解决,我查了资料,大概意思是这是由于android系统造成的,listview是一个循环,为了更少的开销资源,它永远只加载你当前屏幕上显示的内容,你如果滚动到下面没有加载过的内容上面,它不会重新生成需要的资源,而是用以前生成过的,所以你往下面滚动的时候就会有可能没有填写内容而出现内容,再滚动回去就可能导致以前填写过的东西莫名其妙消失了。
就是这样,我到最后也没解决,有人知道如何解决这个问题请帮忙回答一下。在此同谢! --------------------编程问答--------------------
高手指点说:做一个全局变量类似于 list<Map<String,Integer>>之类的数据结构  将listview的item和edittext输入值绑定  点击的时候将键值记录,在getView的时候将数据还原 。

大家有没有实现这种功能的代码啊?

--------------------编程问答-------------------- 逻辑上这样是可以的,但是这么做有点死,你等等,我试着写一下,看看能不能写出来 --------------------编程问答-------------------- 我没时间做了,介绍你去看看这个http://mypyg.iteye.com/blog/738316
我觉得他说得有道理 --------------------编程问答-------------------- 哪位大哥 能给一些代码啊! --------------------编程问答-------------------- 哪位高人指点一下哦! --------------------编程问答-------------------- 解决了没?求源码 --------------------编程问答-------------------- - -||lz是否自定义了listview的适配器?实现这种相对复杂或者更复杂的listview布局,是需要自定义适配器的,用自己的适配器,理论上任何形势的listview都是可以做出来的 --------------------编程问答--------------------
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对象实例来保存它的数据,呃……大概就这样。 --------------------编程问答-------------------- listView错乱  以前遇过  也是百度查的  楼主查查看吧 --------------------编程问答-------------------- 应该是你输入的数据没有存储,等你返回的时候或拉动listview的时候,都会重新加载数据的,你没有保存数据,所以原来的数据丢失了。 --------------------编程问答-------------------- 方法一:http://download.csdn.net/detail/admin_/5301795
方法二:http://download.csdn.net/detail/admin_/5518285
完美解决,自己看,有注释 --------------------编程问答-------------------- 很好很强大,学习了 --------------------编程问答-------------------- 很强大,学习了 --------------------编程问答-------------------- http://blog.csdn.net/xiaanming/article/details/8536231很早就遇到过,希望对博主有帮助 --------------------编程问答-------------------- 学习了
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,