2015-06-20 3 views
-1

Я новичок в разработке Android.onTouchEvent() в Android

Как написать onTouchEvent() в одном виде деятельности и получить доступ ко всем другим видам деятельности в приложении?

Я пытаюсь в следующим образом:

Public class TouchActivity extends Activity 
{ 
    @Override 
    public boolean onTouchEvent(MotionEvent event){ 

     int action = MotionEventCompat.getActionMasked(event); 
     boolean touch_up_detect; 
     if (action == MotionEvent.ACTION_UP) 
     { 
      //touch_up_detect = true; 
      if (timer == null) 
      { 
       timer = new Timer(); 
       timer.schedule(new ScheduledTaskWithHandeler(), 10000); 
      }    
     } 
     else if (action == MotionEvent.ACTION_DOWN) 
     { 
      System.out.println("user touching screen**********"); 
      if (timer != null) 
      { 
       timer.cancel(); 
       timer.purge(); 
      }     
     } 
     return false;   
    } 
    class ScheduledTaskWithHandeler extends TimerTask { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(TouchActivty.this, MainActivity.class); 
      startActivity(intent); 

     } 
    } 
} 

public class DashboardActivity extends TouchActivity 
{ 

} 

Всякий раз, когда я касаюсь приборной панели активности, я не в состоянии получить доступ к onTouchEvent() из TouchActivity.

+3

«его очень опасно». NO. Говоря, что вы заслуживаете более быстрого ответа, потому что ваш вопрос «срочный» здесь не работает. Если вы хотите получить более быстрый ответ, отредактируйте свой вопрос так, чтобы он был как можно более ответственным, и, если нужно, запустите баунти (после получения достаточного количества ответов от ответов) – hexafraction

+0

Вся ваша деятельность должна расширить TouchActivity, которую вы создали, и коснуться события будет доступно –

ответ

0

Это потому, что вы расширяете свою деятельность с помощью DashboardActivity. Это означает, что в отношении вашего устройства это две отдельные функции. Деятельность - это отдельные отряды, которые независимы друг от друга.

Если вы просто хотите манипулировать таймером в своей активности касания, вы можете запустить действие для результата и передать таймер в качестве аргумента. Я думаю, что это достигнет того, о чем вы просите. Here вы можете найти вопрос, который рассказывает о передаче данных между действиями.

+1

Got это, мы должны назвать super() в деятельности панели мониторинга –

+0

@GunaSekhar Я рад, что вы это поняли! Надеюсь, я каким-то образом помог. –

+0

@ Роуз Резерфорд, спасибо за помощь :) –