Попытка использовать массив, созданный TextWatcher, вызывает ошибку и принудительное закрытие

Вот мой код:

глобально объявленный

    TextView test;
    EditText edittext;
    TextWatcher watcher;
    ArrayList<String> pastWrittenStrings;

при создании()

   ....setcontentview etc...

test = (TextView)findViewById(R.id.textView2);
edittext = (EditText)findViewById(R.id.spokenmsg);
pastWrittenStrings = new ArrayList<String>();

watcher = new TextWatcher(){

        @Override
        public void afterTextChanged(Editable s) {


        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        String writtenNoLowerCase = test.getText().toString();

        pastWrittenStrings.add(writtenNoLowerCase);
        if(pastWrittenStrings.size()-1 != 0){
            edittext.setText(pastWrittenStrings.size()); //THIS LINE CAUSES THE ERROR
        }
        }
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

        }

    };

onbuttonclick(Просмотр v) ;

test.addTextChangedListener(watcher);
test.setText("calculations");

В основном строка edittext в beforeTextChanged вызывает ошибки. Что я на самом деле пытаюсь сделать, так это записать прошлые экземпляры строки «тест» прямо перед ее изменением и создать с ними массив. Мне никогда не удавалось получить какую-либо строку из pastWrittenStrings, и я пробовал все, даже преобразовывая массив в массив.

Помогите, пожалуйста!

редактировать: Логкэт

07-26 21:12:26.555: E/AndroidRuntime(1580): FATAL EXCEPTION: main
07-26 21:12:26.555: E/AndroidRuntime(1580): java.lang.IllegalStateException: Could not execute method of the activity
07-26 21:12:26.555: E/AndroidRuntime(1580): Caused by: java.lang.reflect.InvocationTargetException
07-26 21:12:26.555: E/AndroidRuntime(1580): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0
07-26 21:13:00.500: W/dalvikvm(1948): threadid=1: thread exiting with uncaught exception (group=0x40c67930)
07-26 21:13:00.505: E/AndroidRuntime(1948): FATAL EXCEPTION: main
07-26 21:13:00.505: E/AndroidRuntime(1948): java.lang.IllegalStateException: Could not execute method of the activity
07-26 21:13:00.505: E/AndroidRuntime(1948): Caused by: java.lang.reflect.InvocationTargetException
07-26 21:13:00.505: E/AndroidRuntime(1948): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0
07-26 21:16:21.695: W/dalvikvm(2817): threadid=1: thread exiting with uncaught exception (group=0x40c67930)
07-26 21:16:21.705: E/AndroidRuntime(2817): FATAL EXCEPTION: main
07-26 21:16:21.705: E/AndroidRuntime(2817): java.lang.IllegalStateException: Could not execute method of the activity
07-26 21:16:21.705: E/AndroidRuntime(2817): Caused by: java.lang.reflect.InvocationTargetException
07-26 21:16:21.705: E/AndroidRuntime(2817): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2

person joe dacoolguy    schedule 26.07.2013    source источник
comment
Опубликуйте логкэт. Я предполагаю, что это StackOverflowException, поскольку .setText() в любом из этих методов вызывает SOE. См. здесь: stackoverflow.com/questions/7222944/ просто измените его для своих нужд.   -  person Nikola Despotoski    schedule 26.07.2013
comment
Опубликовано. На самом деле IllegalStateException.   -  person joe dacoolguy    schedule 26.07.2013


Ответы (1)


использовать

edittext.setText(String.valueOf(pastWrittenStrings.size()));

для отображения целочисленного значения в EditText, потому что метод setText принимает CharSequence в качестве параметра вместо целого числа

person ρяσѕρєя K    schedule 26.07.2013
comment
ты прав. Извините, проблема решена. Это была просто очень забытая ошибка, вызванная лишением сна. - person joe dacoolguy; 26.07.2013