AddTtextChangeDListener per salvare un nuovo oggetto
-
12-12-2019 - |
Domanda
Ho una valida di listview con alcuni TextView e un editExt.Avrei salvato un nuovo oggetto quando l'utente modifica il valore di EdiText.Ho implementato un textwatcher ma non riesco a recuperare un valori di testo specifico che si riferiva a EditExt modificato.Chiunque mi aiuti?
Modifica
TextWatcher per la linea specifica di ListView
.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);
}
}
}
}
Soluzione
<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();
...
}
. Altri suggerimenti
Forse è un po 'eccessivo, ma è possibile utilizzare in ogni metodo Line Setag () per la vista per TextView e EdiText in modo che entrambe le viste siano in qualche modo collegate da questa chiave.Quindi devi solo chiamare FindviewByTAG ().Questa operazione è poco costosa quindi assicurati di chiamarlo solo quando l'utente smette di scrittura.