0

我有一个带有一些 textView 和一个 editText 的 listView。当用户修改editText的值时,我会保存一个新对象。我实现了一个 TextWatcher,但我无法检索引用 editText 修改的特定 textView 的值。有人帮我吗?

编辑

ListView 特定行的 TextWatcher

quantity.addTextChangedListener(new TextWatcher() {
@Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {


    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
        // TODO Auto-generated method stub

    }

    @Override
    public void afterTextChanged(Editable s) {
        if(!s.toString().isEmpty()){ 
            if (Integer.parseInt(s.toString())!=0){


                HashMap<Products, Integer> into = new HashMap<Products, Integer>();

                Products pr = new Products();
                            //product contains value of textView 
                pr.set_id(Integer.parseInt(product.get("id")));
                pr.setNome(product.get("nome"));
                into.put(pr, Integer.parseInt(s.toString()));
                pArrayList.add(into);
                cart.setProdotti(pArrayList);
            }
        }
    }
}
4

2 回答 2

2
<TextView android:id="@+id/p1_name"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:text="Product 1" />
<TextView android:id="@+id/p1_price"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:text="20" />


public void afterTextChanged(Editable s) {
    ...
    String price = ((TextView) findViewById(R.id.p1_price)).getText();
    ...
}
于 2012-10-01T18:55:23.340 回答
0

也许这有点矫枉过正,但您可以在每一行 setTag() 方法中为 TextView 和 EditText 使用 View ,这样两个 View 将通过这个键以某种方式连接。然后你只需要调用 findViewByTag()。此操作有点昂贵,因此请确保仅在用户停止写入时才调用它。

于 2012-10-01T18:29:38.370 回答