El método runOnUiThread (Runnable) en el tipo Activity no es aplicable para los argumentos (void)
Estoy tratando de crear un diálogo desde un subproceso no UI, en onUtteranceCompleted ():
runOnUiThread( new Thread(new Runnable() { public void run() { MyDialog.Prompt(this); } }).start());
Prompt () es un método estático simple de la clase MyDialog:
- El título personalizado de AlertDialog tiene un borde negro
- Ancho de diálogo de Android
- Pruebas de Android: Diálogo. Compruebe que esShowing ()
- Recogedor de ruedas en el cuadro de diálogo Android
- Etiquetas de formato Html ignoradas en el cuadro de diálogo
static public void Prompt(Activity activity) { MyDialog myDialog = new MyDialog(); myDialog.showAlert("Alert", activity); }
El problema es que la leva de dos errores por lo que estoy tratando de hacer:
- El método runOnUiThread (Runnable) en el tipo Activity no es aplicable para los argumentos (void)
- El método Prompt (Actividad) en el tipo MyDialog no es aplicable para los argumentos (new Runnable () {})
Todo lo que quería era "hacerlo bien", aplazando la creación de un diálogo a un hilo de interfaz de usuario, pero parece que me falta algo fundamental.
¿Qué estoy perdiendo y cómo puedo lograr la tarea aparentemente simple que estoy tratando de lograr?
- Actividad a esperar para la entrada del fragmento de diálogo
- Cambiar la cabecera de diálogo personalizada 'AlertDialog' encabezado '
- Crear una clase general para el cuadro de diálogo personalizado en java Android
- Diálogo con vista de lista y mensaje
- El diálogo de búsqueda no se llama onSearchRequested ()
- Android: hacer que todo alrededor de Dialog sea más oscuro que el predeterminado
- El diálogo de búsqueda de Android no funciona
- Abrir diálogo desde la notificación
Debe ser:
runOnUiThread(new Runnable() { public void run() { MyDialog.Prompt(NameOfYourActivity.this); } });
Dice que no es aplicable para los argumentos (void) porque está intentando ejecutar un subproceso utilizando el método start (que es un método void). runOnUiThread
recibe un objeto ejecutable, y no tiene que preocuparse por iniciarlo, lo hace el sistema operativo para usted.
Con respecto al segundo error, ocurre porque en ese ámbito se refiere al objeto Runnable
que se está inicializando, en lugar de la referencia a la actividad. Por lo tanto, tiene que decir explícitamente a qué se está refiriendo (en este caso YourActivityName.this
).