0

我尝试从 onTouch 块启动一个新活动,但应用程序突然终止。我的代码是:

public boolean onTouch(View view, MotionEvent motionEvent) {

    ....
    Intent myIntent = new Intent(context,SecondOne.class);
    myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(myIntent);
    break;
    .....
    return true;
}
4

3 回答 3

0

我最初的猜测是没有看到日志,要么是 Null,要么你的清单中没有声明第二个活动。

我还要说:

  Intent myIntent = new Intent(FirstOne.this,SecondOne.class);
    myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(myIntent);
    break;
于 2014-07-22T15:07:27.557 回答
0

您需要将实际上下文放入意图中。

Intent myIntent = new Intent(ThisClass.this, SecondOne.class);

thisClass成为您编写此代码的任何班级。

于 2014-07-22T15:49:56.630 回答
0

您的代码似乎有问题。

  1. 您不能break;在循环外使用。所以首先,确保你从你的onTouch()功能中消除它。
  2. 确保你的 AndroidManifest 文件中有这个。 <activity android:name=".SecondOne" > </activity>
  3. 确保您的context变量有效。即,如果您的第一个活动名称是First,则其有效context应等于 First.this

我假设你 OnTouchListener 的实现是好的。

您的OnTouchListener实施

private final class OT implements OnTouchListener{

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        context = First.this;
        Intent intent = new Intent(context, SecondOne.class);
        context.startActivity(intent);
        return true;
    }

}

绑定到您的按钮以开始另一个活动。

yourButton.setOnTouchListener(new OT());

在你的 AndroidManifest.xml

<activity android:name=".SecondOne" > 
</activity>
于 2014-07-22T15:52:42.017 回答