从onTouch启动Intent

时间:2014-07-22 15:04:00

标签: android android-intent android-activity ontouch

我尝试从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;
}

3 个答案:

答案 0 :(得分:0)

我没有看到日志的初步猜测是某些东西是空的,或者第二个活动没有在你的清单中声明。

我也会说:

  Intent myIntent = new Intent(FirstOne.this,SecondOne.class);
    myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(myIntent);
    break;

答案 1 :(得分:0)

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

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

thisClass是您编写此代码的任何类。

答案 2 :(得分:0)

您的代码似乎遇到了问题。

  1. 您不能在循环外使用break;。首先,请确保从onTouch()函数中删除它。
  2. 确保您的AndroidManifest文件中包含此内容。 <activity android:name=".SecondOne" > </activity>
  3. 确保您的context变量有效。即如果您的第一个活动名称为First,则其有效context应等于First.this
  4. 我假设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>