当我在屏幕上滑动时,我试图进行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后发生的事情是罪魁祸首。答案 0 :(得分:0)
findViewById(R.id.textView)
如果textView R.id.textView不在当前内容视图中,则会抛出错误。
有时,在覆盖的情况下,您需要执行此操作:
return super.onFling(motionEvent, motionEvent2, v, v2);
答案 1 :(得分:0)
嗯,这很尴尬。在else if语句中,由于某种原因,auto-complete可能添加了函数调用:
moveTaskToBack(boolean b)
将堆栈移动到活动堆栈的后面。 http://developer.android.com/reference/android/app/Activity.html#moveTaskToBack(boolean)