android中listview内的文本更改事件

时间:2015-06-04 07:34:38

标签: android listview custom-adapter

我是android的新手,我在listview中有一个editText,当用户将一些文本或值放入editText时,我想要将这个值显示到同一个listitem内的textview中。我试图在getView中完成它自定义适配器,但它不适合我。我的代码是这样的:

public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            view = lInflater.inflate(R.layout.list_style_task
                    , parent, false);
        }

        LItem p = getProduct(position);


          tvAQuantity=((TextView) view.findViewById(R.id.tvAQuantity ))  ;
        ((TextView) view.findViewById(R.id.tvMaterial )).setText(p.getMName() );
        ((TextView) view.findViewById(R.id.tvTask )).setText(p.getTName() );
          tvBQuantity=((TextView) view.findViewById(R.id.tvBQuantity ))  ;
        tvBQuantity.setText(p.getBQ());
          etQuantity=(EditText)view.findViewById(R.id.etTaskQuantity);
        etQuantity.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                if(Integer.parseInt(s.toString())<=Integer.parseInt(tvBQuantity.getText().toString()))
                {
                    tvAQuantity.setText(s.toString());

                }
                else
                {

                    tvAQuantity.setText(tvBQuantity.getText());

                }

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

    //  CheckBox cbBuy = (CheckBox) view.findViewById(R.id.checkbox);
        //cbBuy.setOnCheckedChangeListener(myCheckChangList);
    //  cbBuy.setTag(position);
    //  cbBuy.setChecked(p.selected);
        return view;
    }

需要您宝贵的建议。

2 个答案:

答案 0 :(得分:2)

2替代方案是:

  1. 您必须将受尊重的字符串更新到您的模型类中,该类将显示在textview中。
  2. 您可以在适配器中的setText()方法之后调用notifyDataSetChanged();。这将刷新列表视图。

答案 1 :(得分:1)

而是将文本设置为if 0 submit else return false. And to get localstorage value use as localStorage.getItem('status'); ,尝试更新列表模型中的字符串值。您遇到此问题,因为您的模型未在textchange事件上获得更新。

TextView