2013-02-04 40 views
0

我有一個ListView,每行包含一個EditText。當我嘗試更改EditText中行的值時,其他一些行的editText值會自動更改。EditText值在android中的列表視圖中自動更改

下面是listView和EditText的代碼。

 <ListView 
      android:id="@+id/ListView" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="#ffffff" 
      android:cacheColorHint="#ffffff" 
      android:layout_above="@+id/includeID" 
      android:layout_below="@+id/linearlayoutforSubTotal" 
      android:visibility="invisible" > 
     </ListView> 

     <EditText 
      android:id="@+id/editTex" 
      android:layout_width="60dip" 
      android:layout_height="30dip" 
      android:textColor="#000000" 
      android:textSize="12dip" 
      android:inputType="number" 
      android:editable="true" > 
     </EditText> 

而波紋管是我試圖獲得EditText的更改值的代碼。

item.quantity.setId(position); 

item.quantity.setOnFocusChangeListener(new OnFocusChangeListener() { 

@Override 
public void onFocusChange(View v, boolean hasFocus) { 
    if (!hasFocus){ 

     final int position = v.getId(); 

     final EditText Caption = (EditText) v; 

     ShoppingCartHelper.cartItems.get(position).qty = Integer.parseInt(Caption.getText().toString()); 

     }       
    } 
}); 

請幫我找到這個問題

+0

你正在做的是錯誤的方式,'item.quantity.setId(位置);'是invalide – QAMAR

+0

那麼怎麼做呢,請告訴我。 –

回答

0

解決方案嘗試是這樣的:

editText.addTextChangedListener(new TextWatcher() { 
    public void afterTextChanged(Editable s) { 
    // Set the value of the field to s.toString(); 
    } 

    public void onTextChanged(CharSequence s, int start, int before, int count) { 
    // Do nothing. 
    } 

    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
    // Do nothing. 
    } 
}); 
+0

我也試過這個代碼,但它不適合我。 –

+0

那麼發生了什麼?是沒有看到的變化? – lokoko

+0

可以看到更改,但是,m試圖更改一個edittext的值,其他edittext自動更改其值。特別是當我改變第一行的值的時候,我發現了這種問題,然後我發現最後一行的edittext值會自動改變。 –