2013-05-14 4 views
0

Я пытался изменить TextView, когда пробирался по экрану. Я использовал GestureDector.OnGestureListener, и просто переделал onFling() METHODE следующим образом:Android: почему салфетки убивают мое приложение?

@Override 
public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) { 
    if (motionEvent.getRawY() < motionEvent2.getRawY()) { 
     ((TextView) findViewById(R.id.textView)).setText("Next"); 
    } else if (moveTaskToBack(motionEvent.getRawY() > motionEvent2.getRawY())) { 
     ((TextView) findViewById(R.id.textView)).setText("Previous"); 
    } 

    return true; 
} 

Но в моем случае, по странной причине, когда я пролистывание влево приложение просто останавливается (как я нажал на кнопку домой) ,

Что может быть причиной этого?

EDIT: если я снова открываю приложение и нажимаю кнопку возврата (физическое), он отображает «предыдущий», поэтому я могу заключить, что салфетки работают, но что-то происходит после установки TextView является виновником.

+2

добавить свой выход логарифма. –

+1

Допустим, данный идентификатор существует на ваш взгляд? Наиболее вероятной причиной будет findVieByID, возвращающий null. Но дайте нам свой логарифт, чтобы быть уверенным. –

+0

У меня есть все сообщения журнала из всего, что есть на моем телефоне, есть ли способ отфильтровать их только на том, что он получает от самого приложения? – DennisVDB

ответ

0
findViewById(R.id.textView) 

Это вызовет ошибку, если textView R.id.textView не находится в текущем представлении содержимого.

Иногда, с переопределением, вам нужно будет сделать это:

return super.onFling(motionEvent, motionEvent2, v, v2); 
+0

Технически, если я могу установить findViewById (R.id.textView) один раз («следующий»), я не должен беспокоиться о том, что это не текущий вид, но я могу ошибаться (android noobie). Также я не могу назвать super.onFling(), он исходит из интерфейса (OnGestureListener). – DennisVDB

+0

«Я не должен беспокоиться о том, что это не относится к текущему виду». Ну, это действительно проблема. Глупо требовать, чтобы представления, используемые в findViewById, существовали в текущем представлении. Может быть, хранить переменную в области класса, а в методе onCreate инициализировать ее (TextView) findViewById (R.id.textView) и просто отключить ее? – Isaac

+0

Я сделал то, что вы сказали, но это не изменилось. Ну, проблема должна быть в другом месте. – DennisVDB

Смежные вопросы