购物车 ListView 包含了EditText的问题,最终解决换RecyclerView来做,哈哈哈哈

               

写这篇文章主要是为了记录EditText,这个EditText的处理真的让人头疼啊。解决一个问题又出现一个问题,我花了3天的时间尽然没有解决,我也是醉了!!!

最终是使用RecyclerView,

先把最终的放在这里:然后写一下ListView 里面的包含EditText的两步处理


要注意的是setTag://注意tag一定要在最上面,就是要在设置监听前面


MainActivity:

package tech.androidstudio.simplecartdemorecyclerview;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.KeyEvent;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.EditText;import android.widget.TextView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        RecyclerView cart =(RecyclerView)findViewById(R.id.recyclerView);        cart.setLayoutManager(new LinearLayoutManager(this));        ArrayList<Integer> cartDatas = new ArrayList<Integer>();        for (int i = 0; i < 100; i++) {            cartDatas.add(i);        }        CartAdapter cartAdapter = new CartAdapter(cartDatas,this);        cart.setAdapter(cartAdapter);    }    public class CartAdapter extends RecyclerView.Adapter<CartAdapter.CartViewHolder> implements TextView.OnEditorActionListener {        private ArrayList<Integer> data = new ArrayList<Integer>();        private Context context;        public CartAdapter(ArrayList<Integer> data,Context context) {            this.data = data;            this.context = context;        }        @Override        public CartViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            View ret = LayoutInflater.from(context).inflate(R.layout.item_simple,parent,false);            return new CartViewHolder(ret);        }        @Override        public void onBindViewHolder(CartViewHolder holder, int position) {            holder.number.setTag(position);            holder.number.setText(String.valueOf(data.get(position)));            holder.number.setOnEditorActionListener(this);            Log.d("kodulf","recyclerViewAdapter position"+position);        }        @Override        public int getItemCount() {            return data.size();        }        @Override        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {                int position = (int) v.getTag();                int updatedInteger=Integer.parseInt(v.getText().toString());                data.set(position,updatedInteger);                notifyDataSetChanged();            return false;        }        public class CartViewHolder extends RecyclerView.ViewHolder{            private EditText number;            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值