2011-01-06 8 views
2

私は3つのクラスを持っています:MainActivity、DrawView、およびSecondActivity。 MainActivityはDrawViewを使用して画面に何かを描画します。 SecondActivityを起動するにはどうすればよいのですか?私はBitmap上で画面に触れると、コード内のビットマップがどこにあるのか知っています。 DrawViewクラスのonTouchEvent関数。Android:startActivity()を継承したクラスで表示

@Override 
public boolean onTouchEvent(final MotionEvent ev) { 
    switch (ev.getAction()) { 
     case MotionEvent.ACTION_DOWN: { 

      float posX = ev.getX(); 
      float posY = ev.getY(); 
      if(play.touched(posX, posY)==true){ 

      } else { 
      } 
      return true; 
     } 

} 
    return false; 
} 

関数が(私はビットマップの位置をヘンデルクラス製)ブール値を返すplay.touched(posX,posY)。ここからSecond Activityをどのように開始できますか?

+0

ルック:http://stackoverflow.com/questions/5203019/how-to-start-one-activity-from-customized-view – user1400290

答えて

10
 if(play.touched(posX, posY)){ 
      Intent intent = new Intent(getContext(), SecondActivity.class); 
      ((Activity)getContext()).startActivity(intent); 
     } else { 
     } 
+0

を私はViewを拡張するクラスでstartActivity(Intent)を呼び出すことはできません。 – Felix

+0

そのようにしてください...あなたのアクティビティからDrawViewを作成した場合はうまくいきます。それ以外の場合は...オブザーバーパターンのようなものを実装する必要があります。 – Cristian

0

あなたは試してみました:これで

if(play.touched(posX, posY)){ 
    Intent intent = new Intent(getContext(), SecondActivity.class); 
    super.getContext().startActivity(intent); 
} else { 
} 
関連する問題