-1

私は非常に多くの例を見てきましたが、誰も私のために働いていません。私が欲しいのは、EditText の addTextChangeListener() を介してテキストを TextView に設定することです。しかし、私のテキストビューのテキストは、編集テキストに入力した文字ごとに繰り返されます。

ここに私のコード:

edtFromName.addTextChangedListener(new TextWatcher() {
            private String lastValue = "";
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {}
            @Override
            public void afterTextChanged(Editable s) {
                setMessage();
            }
        });

// setMessage code:
  private void setMessage() {

        if (refVia.getSelectedItemPosition() < 3) {
            if (txtCompany.equals("")) {
                txtText.append(" or ");
            } else {
                txtText.append(" " + txtCompany + " or ");
            }
        } else {
            if (txtSupplier.equals("")) {
                txtText.append(" or ");
            } else {
                txtText.append(" " + txtSupplier + " or ");
            }
        }

        txtText.append(edtFromName.getText().toString() + ".");
    }

出力:

Edittext:  sagar

textview: s
textview: sa
textview: sag
textview: saga
textview: sagar
4

1 に答える 1

0

わかりましたので、追加します。

int mainStringLength = txtText.getText().toString().length();
int nameStringLength = edtFromName.getText().toString().length();
String trimString = txtText.getText().toString().substring(0,(mainStringLength - nameStringLength); 

//Now set this string.
txtText.setText(trimString);
于 2016-09-17T07:21:08.823 に答える