0

当我在屏幕上滑动时,我试图更改 TextView。我使用了 GestureDector.OnGestureListener,只是重新编码了 onFling() 方法,如下所示:

@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;
}

但就我而言,出于一个奇怪的原因,当我向左滑动时,应用程序就停止了(就像我按下了主页按钮)。

这可能是什么原因造成的?

编辑:如果我重新打开应用程序并按下返回按钮(物理),它会显示“上一个”,因此我可以得出结论,滑动有效,但设置 TextView 后发生的事情是罪魁祸首。

4

2 回答 2

0
findViewById(R.id.textView)

如果 textView R.id.textView 不在当前内容视图上,这将引发错误。

有时,使用覆盖,您需要这样做:

return super.onFling(motionEvent, motionEvent2, v, v2);
于 2013-05-14T21:06:13.140 回答
0

嗯,这是尴尬。在 else if 语句中,出于某种原因,自动完成可能添加了函数调用:

  moveTaskToBack(boolean b)

它将堆栈移动到活动堆栈的后面。 http://developer.android.com/reference/android/app/Activity.html#moveTaskToBack(boolean)

于 2013-05-15T07:25:49.817 回答