最近项目的购物车中用列表中包含了留言功能, 需要获取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) { }
} }

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

最新文章

  1. Windows 2008 - 由于管理员设置的策略,该磁盘处于脱机状态
  2. Spring MVC MultipartFile实现图片上传
  3. 数据库操作提示:Specified key was too long; max key length is 767 bytes
  4. CentOS Linux VPS安装IPSec+L2TP VPN
  5. javascript笔记6-DOM
  6. 06.C#泛型约束和高级泛型(三章3.3-3.4)
  7. MVC 返回图片
  8. c#WebBrowser进阶
  9. Windows Server 2012 R2 服务器管理器介绍和配置使用
  10. IT忍者神龟之Java动态代理与CGLib代理
  11. 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等
  12. 关于新版本,iOS10的相关内容,兼容iOS 10 资料整理笔记
  13. django模板语言循环字典,及forloop
  14. 分布式计算课程补充笔记 part 4
  15. HTML head 头标签(转)
  16. 使用exec函数将当前的信息输入到文件中
  17. df换行问题解决
  18. C语言利用异或进行两个值的交换
  19. Scrum Meeting 11.04
  20. 20155321 2016-2017-2 《Java程序设计》第七周学习总结

热门文章

  1. Go实现查找目录下(包括子目录)替换文件内容
  2. python .bat
  3. vmware下安装centos7
  4. 150. Evaluate Reverse Polish Notation(逆波兰表达式)
  5. hdu6127 Hard challenge
  6. python 利用正则构建一个计算器
  7. LNMP环境简单教程
  8. PHP秒杀系统全方位设计分析(二)
  9. mouseover 有一个多次触发的问题
  10. 20145216《java程序设计》课程总结