Как текущий фокус редактировать текст в Android? - PullRequest
0 голосов
/ 31 января 2012

Привет, я хочу получить текст для редактирования, который в данный момент находится в фокусе при нажатии кнопки, есть какая-либо кнопка для этого.

Или есть способ определить, какой текст редактирования был последний изменен, если имеется много текста для редактированияв деятельности.

Пожалуйста, предложите мне полезную ссылку или образец кода.

Ответы [ 2 ]

1 голос
/ 31 января 2012

Я беру линейный макет и добавляю в него пользовательский EditText.

    LayoutInflater li = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
    for(int i = 0; i < 3; i++) {
        View v = li.inflate(R.layout.addit, null);
        final EditText e = (EditText) v.findViewById(R.id.e1);
        e.addTextChangedListener(new TextWatcher() {

            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub

            }

            public void beforeTextChanged(CharSequence s, int start,
                    int count, int after) {
                // TODO Auto-generated method stub

            }

            public void onTextChanged(CharSequence s, int start,
                    int before, int count) {
                // TODO Auto-generated method stub

                System.out.println("--change--");
                mEditText = e;
                System.out.println(e.getText().toString());
            }

        });
        edit_ll.addView(v);
    }

Здесь mEditText - глобальная переменная.

В любом месте вашей деятельности вы можете получить к нему доступ.И может получить последний текст редактирования, в который вы записали.

0 голосов
/ 31 января 2012

вы можете добавить textWatcher ко всем EditTexts:

private class CustomTextWatcher implements TextWatcher {
    private EditText mEditText;

    public CustomTextWatcher(EditText e) {
        mEditText = e;
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

    public void afterTextChanged(Editable s) {
    }
}

и иметь глобальную переменную для вашего класса, которая будет содержать ссылку на editText, которая редактируется.

...