Android-------ListView列表中获取EditText输入的值
2024-08-29 07:04:45
最近项目的购物车中用列表中包含了留言功能, 需要获取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) { }
} }
代码是写的比较简单,源码点击下载
最新文章
- Windows 2008 - 由于管理员设置的策略,该磁盘处于脱机状态
- Spring MVC MultipartFile实现图片上传
- 数据库操作提示:Specified key was too long; max key length is 767 bytes
- CentOS Linux VPS安装IPSec+L2TP VPN
- javascript笔记6-DOM
- 06.C#泛型约束和高级泛型(三章3.3-3.4)
- MVC 返回图片
- c#WebBrowser进阶
- Windows Server 2012 R2 服务器管理器介绍和配置使用
- IT忍者神龟之Java动态代理与CGLib代理
- 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等
- 关于新版本,iOS10的相关内容,兼容iOS 10 资料整理笔记
- django模板语言循环字典,及forloop
- 分布式计算课程补充笔记 part 4
- HTML head 头标签(转)
- 使用exec函数将当前的信息输入到文件中
- df换行问题解决
- C语言利用异或进行两个值的交换
- Scrum Meeting 11.04
- 20155321 2016-2017-2 《Java程序设计》第七周学习总结