我有一个带有一些textView和一个editText的listView。当用户修改editText的值时,我会保存一个新对象。我实现了一个TextWatcher,但是我无法检索特定textView的值,这些值引用了editText修改过。有人帮帮我吗?
修改
特定行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);
}
}
}
}
答案 0 :(得分: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();
...
}
答案 1 :(得分:0)
也许它有点矫枉过正,但你可以在每个行setTag()方法中使用View for TextView和EditText,这样两个视图就可以通过这个键以某种方式连接起来。然后你只需要调用findViewByTag()。此操作有点贵,因此请务必在用户停止写入时调用它。