Android 如何更改界面中TextView的文本

Android 如何更改界面中TextView的文本,android,interface,Android,Interface,大家好。 实际上我正在Android Studio中做一个应用程序。 尝试更改属于对话框的TextView的文本时出现问题。 我认为问题是因为我试图在接口内部执行setText。 这是我的对话 private void showDialogDeEspera() { AlertDialog.Builder builder = new AlertDialog.Builder(this); LayoutInflater inflater = getLayoutInflater();

大家好。 实际上我正在Android Studio中做一个应用程序。 尝试更改属于对话框的TextView的文本时出现问题。 我认为问题是因为我试图在接口内部执行setText。 这是我的对话

 private void showDialogDeEspera() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    LayoutInflater inflater = getLayoutInflater();
    View view = inflater.inflate(R.layout.dialog_de_carga_o_espera, null, false);
    builder.setView(view);
    dialogEspera = builder.create();
    textEspera = view.findViewById(R.id.text_dialog_carga_o_espera);
    progresoPing = view.findViewById(R.id.progress_carga_o_espera);
    progresoPing.setVisibility(View.VISIBLE);
    dialogEspera.show();
}
这是我的界面,在这里我得到了回应,我试图修改文本

ResponsePingWs rpw = new ResponsePingWs() {
        @Override
        public void responsePing(String error) {
            validarRespuesta(error);
        }
};
validarRespuesta方法用于尝试修改带有错误的文本

private void validarRespuesta(String error){
    if (error.equals("")){
        textEspera.setText("No se puede accesar al servisor");
        SystemClock.sleep(3000);
        Toast.makeText(this, "No se pudo acceder al servidor, revisar URL", Toast.LENGTH_SHORT).show();
        dialogEspera.dismiss();
    }else if (error.equals("success")){
        textEspera.setText("Coneción exitosa!");
        SystemClock.sleep(3000);
        Toast.makeText(this, "El servidor respondió correctamente!", Toast.LENGTH_SHORT).show();
        dialogEspera.dismiss();
    }else if (!error.equals("") && !errorPing.equals("success")){
        textEspera.setText(error);
        SystemClock.sleep(3000);
        Toast.makeText(this, "El servidor respondió con un mensaje de error", Toast.LENGTH_SHORT).show();
        dialogEspera.dismiss();
    }
}
如果有人有这方面的想法或解决方案,如果您能帮助我,我将不胜感激,谢谢

谢谢@Dhaval Shah 我用了runOnUiThread,如果有用的话

 final ResponsePingWs rpw = new ResponsePingWs() {
                    @Override
                    public void responsePing(String error, Context context) {
                        runThread(error, context);
                    }
                };
                pingAPI(getApplicationContext(), rpw);
这就是我要实现的runThread方法

private void runThread(final String error, final Context context) {

    new Thread() {
        public void run() {
                try {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            if (error.equals("")){
                                textEspera.setText("No se puede accesar al servisor");
                                SystemClock.sleep(3000);
                                Toast.makeText(context, "No se pudo acceder al servidor, revisar URL", Toast.LENGTH_SHORT).show();
                                dialogEspera.dismiss();
                            }else if (error.equals("success")){
                                textEspera.setText("Coneción exitosa!");
                                SystemClock.sleep(3000);
                                Toast.makeText(context, "El servidor respondió correctamente!", Toast.LENGTH_SHORT).show();
                                dialogEspera.dismiss();
                            }else if (!error.equals("") && !errorPing.equals("success")){
                                textEspera.setText(error);
                                SystemClock.sleep(3000);
                                Toast.makeText(context, "El servidor respondió con un mensaje de error", Toast.LENGTH_SHORT).show();
                                dialogEspera.dismiss();
                            }
                        }
                    });
                    Thread.sleep(300);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
        }
    }.start();
}

您正在尝试从后台线程调用interfacePing方法吗?在android中,视图只能在主线程中修改。也许你可以试着把runOnUiThread放进去。事实上,我从截击响应监听器调用了我接口的方法