0

タッチ座標に四角形が含まれているかどうかを確認するカスタマイズされた OnTouch メソッドがあります。条件を確認した後、新しいアクティビティを開始したいのですが、残念ながら機能していません。誰か助けてくれますか?

public class custom extends SurfaceView implements SurfaceHolder.Callback{


public boolean onTouchEvent(MotionEvent event) {
    int touchX = (int) event.getX();
    int touchY = (int) event.getY();
    switch(event.getAction()){

    case MotionEvent.ACTION_DOWN:
            System.out.println("Touching down!");

            for(int i =0; i< rectangles.size();i++){

                if(rectangles.get(i).contains(touchX,touchY)){
                    System.out.println("Touched Rectangle, start activity.");
                    rectangles.get(i).describeContents ();
                    Selected_rect = String.valueOf(rectangles.get(i));
                                       }
                Intent intent=new Intent(getContext(), DetectBlock.class);  
                startActivity(intent); //ERROR >> Start activity undefined   

            }
            break;
    case MotionEvent.ACTION_UP:
            System.out.println("Touching up!");
            break;
    case MotionEvent.ACTION_MOVE:
            System.out.println("Sliding your finger around on the screen.");
            break;
    }
    return true;
}
}
4

2 に答える 2

0

何よりもまず、ログに記録するときは使用しませんSystem.out.println(");。Android でのログインにはLogクラスを使用するため、次のように簡単にログインできます。Log.d("className", "This is a test");

これはあなたの問題を解決するかもしれませんメソッド startActivity(Intent) は型に対して定義されていませんか?

これが役立つことを願っています。

于 2012-08-20T06:38:24.223 に答える
0

私は答えを見つけました:)

private void startActivity() {
    // TODO Auto-generated method stub
    Intent myIntent = new Intent("android.intent.action.DetectBlock");
    myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    getContext().startActivity(myIntent);
}
于 2012-08-20T18:49:24.927 に答える