Visibilidad de un botón en el temporizador

Tengo una aplicación que muestra un descargo de responsabilidad al principio del programa. Quiero que un botón permanezca invisible durante un período de tiempo determinado y luego se vuelva visible. Configurar un hilo que duerme durante 5 segundos, y luego intenta hacer el botón visible. Sin embargo, obtengo este error cuando ejecuto mi código:

08-02 21: 34: 07.868: ERROR / AndroidRuntime (1401): android.view.ViewRoot $ CalledFromWrongThreadException: Sólo el subproceso original que creó una jerarquía de vistas puede tocar sus vistas.

¿Cómo puedo contar 5 segundos, y luego hacer el botón visible? Gracias.

Thread splashTread = new Thread() { @Override public void run() { try { int waited = 0; while(_active && (!_ok2)) { sleep(100); if(_active) { waited += 100; if(waited >= _splashTime) { turnButtonOn(); } } } } catch(InterruptedException e) { // do nothing } finally { finish(); startActivity(new Intent("com.lba.mixer.Choose")); } }; splashTread.start(); public static void turnButtonOn() { okButton.setVisibility(View.VISIBLE); } 

El problema es que no estás en el subproceso de interfaz de usuario al llamar a okButton.setVisibility(View.VISIBLE); , Ya que crear y ejecutar su propio hilo. Lo que tiene que hacer es obtener el controlador de su botón y establecer la visibilidad a través del hilo de interfaz de usuario que recibe a través del controlador.

Así que en lugar de

 okButton.setVisibility(View.VISIBLE) 

deberías hacer

 okButton.getHandler().post(new Runnable() { public void run() { okButton.setVisibility(View.VISIBLE); } }); 

He encontrado esto para ser una solución mucho más simple. Visibilidad en retraso de 7 segundos

 continuebutton.setVisibility(View.INVISIBLE); continuebutton.postDelayed(new Runnable() { public void run() { continuebutton.setVisibility(View.VISIBLE); } }, 7000); 
  • Imagen de círculo con texto
  • Android - Descripción de View.getLocalVisibleRect (Rect)
  • Cómo establecer la unidad para Paint.setTextSize ()
  • Android: ¿cuál es la diferencia entre los estados enfocado, habilitado, presionado y seleccionado?
  • Android: ¿conseguir niños dentro de una vista?
  • ¿Cómo configurar Media Controller sobre el video?
  • ¿Cuál es el propósito principal de los métodos setTag () getTag () de View?
  • ¿Cómo dejas de que ADT Logcat View aparezca automáticamente en Eclipse?
  • Android: cómo encontrar varias vistas con un atributo común
  • Disposición de Android Los parámetros cambian SÓLO el ancho y la altura
  • Dibuja un círculo en una vista (android)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.