2016-01-08 3 views
1

У меня есть Handler в моей активности Загрузка, которая задерживает мой Intent в следующую операцию (которая отлично работает).On Click Listener Inside a Handler

Что я хочу сделать, после окончания задержки я хочу иметь на Click Listener, который покрывает весь экран, но он не работает!
Я пытался общественного недействительными OnClick и View.onClickListener ни один из них не работает внутри Handler

Как я могу это исправить?

Мой Handler Код:

new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      overridePendingTransition(R.anim.animin, R.anim.animout); 
      final Intent mainIntent = new Intent(LoadingActivity.this, StartActivity.class); 
      LoadingActivity.this.startActivity(mainIntent); 
      LoadingActivity.this.finish(); 
     } 
    }, 6000); 
}  
+0

Если вы хотите щелчок слушателя ** после ** задержки заканчивается, не нужно ли быть внутри вашей «StartActivity»? –

+0

Я не вижу никакого onclick –

+0

@JimRhodes Нет! я хочу, чтобы текст «LOADING» изменился на «CLICK TO START», и когда пользователь нажимает в любом месте экрана, он переходит в StartActivity. – zack

ответ

0

Это то, что вы хотите, чтобы начать свою деятельность одним щелчком экрана, но сразу после задержки?

Затем следует установить слушателя в обработчике:

setContentView(R.layout.mylayout); 
    final View mScreen = findViewById(R.id.whole_layout); 
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      mScreen.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        overridePendingTransition(R.anim.animin, R.anim.animout); 
        final Intent mainIntent = new Intent(LoadingActivity.this, StartActivity.class); 
        LoadingActivity.this.startActivity(mainIntent); 
        LoadingActivity.this.finish(); 
       } 
      }); 
     } 
    }, 6000); 

mylayout.xml:

<LinearLayout 
    android:id="@+id/whole_layout" 
    android:clickeable="true" 
    ...> 
     <!-- your content --> 
</LinearLayout> 

Вы можете использовать тип компоновщика, который вы хотите

+0

Спасибо, что это сработало удивительно :) – zack

0

Создайте пустой вид, соответствующий макет установки логики экрана, а затем, чтобы показать/скрыть вид, когда наши правила?