0

ListView があり、各行には 1 つの EditText が含まれています。EditText の行の値を変更しようとすると、他の行の editText 値が自動的に変更されます。

以下は、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());

         }                          
    }
});

この問題の解決策を見つけるのを手伝ってください

4

1 に答える 1

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.
  }
});
于 2013-02-04T13:08:20.933 に答える