listview item中点击按钮增加一行

edison_leung 2017-11-18 11:23:32
listview item中通过点击item的按钮增加一行,可无限增加在同一item中
...全文
686 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
202005021116 应用层 2017-11-20
  • 打赏
  • 举报
回复
引用 4 楼 qq_40864228 的回复:
可以加qq详细问一下吗?感谢
邮箱 164016202@qq.com
edison_leung 2017-11-20
  • 打赏
  • 举报
回复
private class CreatShelfTaskAdapter extends BaseAdapter { private final FuncDetailActivity context; private ArrayList<ShelfTaskBean> dataList; ViewHolder holder=null; public CreatShelfTaskAdapter(FuncDetailActivity context) { this.context=context; initListData(); } private void initListData() { dataList=new ArrayList<ShelfTaskBean>(); for (int i = 0; i < 10; i++) { ShelfTaskBean ShelfTaskBean = new ShelfTaskBean(); ShelfTaskBean.setName("荣耀8"); ShelfTaskBean.setBhao(0); ShelfTaskBean.setTma(0); ShelfTaskBean.setSl(1); ShelfTaskBean.setUp_loc(0); ShelfTaskBean.setUp_sl(0); dataList.add(ShelfTaskBean); } } @Override public int getCount() { return dataList.size(); } @Override public ShelfTaskBean getItem(int position) { return dataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { if(convertView==null){ convertView=View.inflate(mContext,R.layout.item_create_task,null); holder=new ViewHolder(); holder.tvName = (TextView)convertView.findViewById( R.id.tv_name ); holder.tvBhao = (TextView)convertView.findViewById( R.id.tv_bhao); holder.tvTma = (TextView)convertView.findViewById( R.id.tv_tma); holder.tvSl = (TextView)convertView.findViewById( R.id.tv_sl ); holder. etUploc = (EditText)convertView.findViewById( R.id.et_up_loc ); holder.etUpsl = (EditText)convertView.findViewById( R.id.et_up_sl); holder.task_ll=(LinearLayout)convertView.findViewById(R.id.task_ll); holder.btn_spit= (Button) convertView.findViewById(R.id.btn_spit); convertView.setTag(holder); }else{ holder= (ViewHolder) convertView.getTag(); } ShelfTaskBean bean = dataList.get(position); holder.tvName.setText("名称:"+bean.getName()); holder.tvBhao.setText("商品条码:"+bean.getBhao()); holder.tvTma.setText("商品编号:"+bean.getTma()); holder.tvSl.setText("扫描数量:"+bean.getSl()); holder.btn_spit.setTag(position); holder.btn_spit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.getTag(); if (position==(int)holder.btn_spit.getTag(position)){ initLinearLayout(); } } }); return convertView; } private void initLinearLayout(){ LinearLayout linearLayout=new LinearLayout(mContext); LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT,1); linearLayout.setOrientation(LinearLayout.HORIZONTAL); TextView textView=new TextView(mContext); textView.setText("上货位号:"); textView.setTextSize(15); textView.setTextColor(Color.parseColor("#000000")); textView.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT,2)); TextView textView1=new TextView(mContext); textView1.setText("上货数量:"); textView1.setTextSize(15); textView1.setTextColor(Color.parseColor("#000000")); textView1.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT,2)); EditText editText=new EditText(mContext); editText.setText("11"); editText.setTextSize(15); editText.setTextColor(Color.parseColor("#000000")); editText.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT,2)); EditText editText1=new EditText(mContext); editText1.setText("22"); editText1.setTextSize(15); editText1.setTextColor(Color.parseColor("#000000")); editText1.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT,2)); Button button=new Button(mContext); button.setText("删除"); button.setTextSize(13); button.setLayoutParams(new LinearLayout.LayoutParams(30, ViewGroup.LayoutParams.WRAP_CONTENT,1)); linearLayout.addView(textView); linearLayout.addView(editText); linearLayout.addView(textView1); linearLayout.addView(editText1); linearLayout.addView(button); holder.task_ll.addView(linearLayout); } } static class ViewHolder{ TextView tvName; TextView tvBhao; TextView tvTma; TextView tvSl; EditText etUploc; EditText etUpsl; Button btn_spit; Button btn_delete; LinearLayout task_ll; LinearLayout spit_ll; } } 就这样 数据显示错乱了,怎么解决
edison_leung 2017-11-20
  • 打赏
  • 举报
回复
出现了点击按钮后,数据显示错乱的问题,例如点击第一个item中的按钮,但数据显示在第某个item中了,而且滑动会导致数据错乱。
edison_leung 2017-11-20
  • 打赏
  • 举报
回复
可以加qq详细问一下吗?感谢
202005021116 应用层 2017-11-20
  • 打赏
  • 举报
回复
引用 2 楼 luoyingbiao 的回复:
通过集合添加,点击一次按钮add一次
添加后记得adapter.notifyDataSetChanged();
202005021116 应用层 2017-11-20
  • 打赏
  • 举报
回复
通过集合添加,点击一次按钮add一次
edison_leung 2017-11-20
  • 打赏
  • 举报
回复
发了,,,,,
edison_leung 2017-11-18
  • 打赏
  • 举报
回复
应该怎么实现

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧