0

私はいくつかのtextViewと1つの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

少しやり過ぎかもしれませんが、各行で TextView と EditText のビューの setTag() メソッドを使用できるので、両方のビューがこのキーで何らかの方法で接続されます。次に、findViewByTag() を呼び出すだけです。この操作は少しコストがかかるため、ユーザーが書き込みを停止したときにのみ呼び出すようにしてください。

于 2012-10-01T18:29:38.370 に答える