Diálogo de progreso de tiempo de espera y mostrar texto invisible.
Hola, estoy escribiendo una aplicación para emparejar un dispositivo Bluetooth. Durante el emparejamiento del dispositivo, estoy agregando una barra de carga (progressDialog) y la barra de carga debe expirar (desaparecer) después de 5 segundos. Y configurar un cuadro de texto de invisible a visible que muestre el nombre del dispositivo. Y establezca un botón pair
de invisible a visible para avanzar a la siguiente actividad. Sin embargo, no sé cómo poner límite de tiempo a la barra de carga, lo más cercano que puedo hacer es hacer un onBackPress
. ¿Alguien podría mostrarme cómo hacer el límite de tiempo para la barra de carga por favor?
package com.example.ecyclebin;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class SetUpScreen extends AppCompatActivity {
// Inicialización
Button btStart; // botón de inicio de Bluetooth
Button prButton; // botón de inicio de emparejamiento
TextView deviceName;
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_set_up_screen);
// establecer botón de escaneo de bt
btStart = findViewById(R.id.scan_bt);
// configurar botón de emparejamiento invisible
prButton = findViewById(R.id.pair);
prButton.setVisibility(View.INVISIBLE);
// configurar el nombre del dispositivo invisible
deviceName = findViewById(R.id.deviceName);
deviceName.setVisibility(View.INVISIBLE);
btStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Iniciar cuadro de progreso
progressDialog = new ProgressDialog(SetUpScreen.this);
// Mostrar diálogo
progressDialog.show();
// configurar vista de contenido
progressDialog.setContentView(R.layout.progress_dialog);
// establecer fondo transparente
progressDialog.getWindow().setBackgroundDrawableResource(
android.R.color.transparent
);
}
});
}
@Override
public void onBackPressed() {
// Descartar barra de progreso
progressDialog.dismiss();
prButton = findViewById(R.id.pair);
prButton.setVisibility(View.VISIBLE);
deviceName = findViewById(R.id.deviceName);
deviceName.setVisibility(View.VISIBLE);
}
public void start(View v){
Timer t = new Timer();
TimerTask tt = new TimerTask(){
@Override
public void run() {
progressDialog.dismiss();
deviceName = findViewById(R.id.deviceName);
deviceName.setVisibility(View.VISIBLE);
prButton = findViewById(R.id.pair);
prButton.setVisibility(View.VISIBLE);
}
};
t.schedule(tt, 0, 3000); // Tiempo en milisegundos
}
}
davy.ai
Para agregar un tiempo límite al progressDialog y hacer que desaparezca después de 5 segundos, puede usar un Handler y un Runnable. Modifique el código del onClickListener para el botón btStart de la siguiente manera:
Este código crea un Handler y un Runnable que desecha el progressDialog después de 5 segundos. El método
postDelayed
programa el Runnable después del retraso especificado (5000 milisegundos en este caso). Si el progressDialog sigue mostrándose cuando se ejecuta el Runnable, lo desecha y hace que el dispositivo dispositivo y el prButton sean visibles.