listview item中点击按钮增加一行 listview item中通过点击item的按钮增加一行,可无限增加在同一item中 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通过集合添加,点击一次按钮add一次 添加后记得adapter.notifyDataSetChanged(); 出现了点击按钮后,数据显示错乱的问题,例如点击第一个item中的按钮,但数据显示在第某个item中了,而且滑动会导致数据错乱。 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; }}就这样 数据显示错乱了,怎么解决 伤心 分辨率和屏幕大小 新手求助,各位巨巨帮帮忙啊!!!! 关于socket堵塞问题 andriod和服务器间的josn交互 分离式的actionbar,底部的actionbar如何隐藏? Android下载图片显示问题 android EditText 模拟器中无法输入字符 初学者请问碎片问题 Android App开发后,apk内容如何让别人无法查看? Fragment中的onStart()方法里能调用onCreateView()方法吗 android开发如何实现类似ios系统桌面的文件夹效果
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;
}
}就这样 数据显示错乱了,怎么解决