Android-------ListView列表中获取EditText输入的值

最近项目的购物车中用列表中包含了留言功能, 需要获取EditText输入的内容,当购买多件商品时,就有点棘手了。

经过查资料解决了这个功能,并写了一个案例;

效果图:

可以在商品数据用一个字段来管理留言数据,这样就可以方便的操作了。

代码:

public class MainActivity extends AppCompatActivity {

    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView(){
        listView=(ListView)findViewById(R.id.listview);
        listView.setAdapter(new ListAdapter(this));
    }
    public void saveEditData(int position, String str) {
        Toast.makeText(this,str+"----"+position,Toast.LENGTH_LONG).show();
    }
}

Adapter

public class ListAdapter extends BaseAdapter {

    Context context;
    LayoutInflater inflater;
    String[] strings=new String[]{"商品1","商品2","商品3"};
    public ListAdapter(Context context) {
        this.inflater=LayoutInflater.from(context);
        this.context=context;
    }

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public Object getItem(int position) {
        return strings[position];
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (null == convertView){
            convertView = inflater.inflate(R.layout.item_multiple_confirm,null);
            holder =new ViewHolder(convertView,position);
            convertView.setTag(holder);
        }else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.tv_name.setText(getItem(position).toString());
        return convertView;
    }

    class ViewHolder{
        TextView tv_name;
        EditText editText;
        public ViewHolder(View view,int pisition){
            tv_name = (TextView) view.findViewById(R.id.fill_order_name);
            editText= (EditText) view.findViewById(R.id.fill_order_ltext);
            editText.setTag(pisition);//存tag值
            editText.addTextChangedListener(new TextSwitcher(this));
        }
    }

    class TextSwitcher implements TextWatcher {
        private ViewHolder mHolder;

        public TextSwitcher(ViewHolder mHolder) {
            this.mHolder = mHolder;
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            int position = (int) mHolder.editText.getTag();//取tag值
            ((MainActivity)context).saveEditData(position, s.toString());
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    }

}

代码是写的比较简单,源码点击下载

时间: 2024-10-13 03:22:48

Android-------ListView列表中获取EditText输入的值的相关文章

Android ListView列表控件的简单使用

ListView 列表是我们经常会使用的控件, 如果想要自定义里面的显示的话是挺麻烦的, 需要新建XML.Class SimpleAdapter这两个文件, 较为麻烦. 如果我们只是想显示两.三行文字在上面, 却又不想那么麻烦呢? 那我们只要新建一个XML就够了.  这里以显示一个ListView项里三个TextView为例.  首先我们要创建一个XML文件, 这个XML文件是用来作为单个ListView项布局用的.  list_row.xml[java]<?xml version="1.

关于Android ListView组件中android:drawSelectorOnTop含意

关于Android ListView组件中android:drawSelectorOnTop含义 When set to true, the selector will be drawn over the selected item. Otherwise the selector is drawn behind the selected item. The default value is false. android:drawSelectorOnTop="true" 点击某一条记录,

Android从相册中获取图片以及路径

首先是相册图片的获取: private final String IMAGE_TYPE = "image/*"; private final int IMAGE_CODE = 0;   //这里的IMAGE_CODE是自己任意定义的 //使用intent调用系统提供的相册功能,使用startActivityForResult是为了获取用户选择的图片 Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT); getAlbum.set

asp.net mvc 在View中获取Url参数的值

如果url是 /home/index?id=3 直接Request就ok. 但是如果路由设定为:{controller}/{action}/{id} url是 /home/index/3   这时想在页面View中获取参数id的值,该怎么获取? 查了下资料好多人都利用Action获取到参数值后,用Viewdata传到View中例如Controlers中的phonelist这样定义  public ActionResult phonelist(int id)    {    ViewData["i

Android 在xml中配置 float 和 integer 值

一.float的配置方法 andriod 默认不支持float型的设置,在values 下的新建floats.xml 文件,在内部添加如下代码: <resources> <item name="chart_view_line_width" format="float" type="dimen"> 3.3</item> <item name="chart_view_text_size"

ArcGIS Runtime SDK for iOS中获取ImageServiceLayer的栅格值

本文原创,转载请注明原创地址 http://blog.csdn.net/dongyu1009/article/details/37697389 用AGSImageServiceIdentifyTask可以获取ArcGISImageServiceLayer图层中的栅格值.这涉及了三个比较重要的类:AGSImageServiceIdentifyParameters.AGSImageServiceIdentifyTask和AGSImageServiceIdentifyResult,还有一个delega

asp.net mvc 如何在View中获取Url参数的值

如果url是 /home/index?id=3 直接Request就ok. 但是如果路由设定为:{controller}/{action}/{id} url是 /home/index/3   这时想在页面View中获取参数id的值,该怎么获取? 查了下资料好多人都利用Action获取到参数值后,用Viewdata传到View中例如Controlers中的phonelist这样定义  public ActionResult phonelist(int id)    {    ViewData["i

js中获取css样式属性值

关于js中style,currentStyle和getComputedStyle几个注意的地方 (1)用js的style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的. (2)currentStyle可以弥补style的不足(可获取内联样式,内部样式和外部样式),但是只适用于IE. (3)getComputedStyle同currentStyle作用相同,但是适用于FF.opera.safari.chrome. 注意: ① currentStyle和getComputedS

Android 在界面中显示以及输入文本信息 TextView和EditText

Android控件之TextView和EditTextTextView:显示文本框控件EditText:输入文本框TextView和EditText的常用属性TextView控件的常用属性android:id 控件的idandroid:layout_width 控件的宽度android:layout_height 控件的高度android:text 文本内容android:textSize 文本大小android:textColor 文本颜色android:background 控件背景Edit