Аниматоры ошибок button.setenabled могут быть запущены только на Looper Threads Android - PullRequest
0 голосов
/ 08 мая 2019

Я хочу включить или отключить кнопки «botonReserva» и «botonPersonas», в зависимости от результата условия, однако я всегда отправляю следующую ошибку при изменении свойства.Аниматоры могут работать только на петельных потоках

Я думал, что проблема возникла, поскольку была сделана попытка включить ее, когда она уже была включена, и я пытался отключить ее, когда она была отключена, поэтому я поставил индикаторчтобы определить, была ли она уже включена, и не включать ее снова, но появляется та же ошибка

    String mensaje;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(getActivity());
        pDialog.setMessage("Verificando capacidad del lugar el dia " + fecha.getText().toString());
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    @Override
    protected String doInBackground(String... args) {
        int status, numero;
        numeroPersonas = numeroPersonasSQL;
        suma_personas = 0;
        capacidadPersonas = 0;
        try {
            List paramsReservacion = new ArrayList();
            paramsReservacion.add(new BasicNameValuePair("id_establecimiento", idEstablecimiento));
            paramsReservacion.add(new BasicNameValuePair("fecha", fecha.getText().toString()));
            JSONObject jsonObject = json.makeHttpRequest(URL_CAPACIDAD, paramsReservacion);
            status = jsonObject.getInt(TAG_STATUS);
            if(status == 1) {
                capacidad_fecha = jsonObject.getJSONArray("capacidad_fecha");
                if(capacidad_fecha.length() > 0) {
                    for (int i = 0; i < capacidad_fecha.length(); i++) {
                        JSONObject c = capacidad_fecha.getJSONObject(i);
                        numero = c.getInt("numero_personas");
                        suma_personas = suma_personas + numero;
                    }
                    capacidadPersonas = capacidad - suma_personas;
                    botonReserva.setEnabled(capacidadPersonas > 0);
                    botonPersonas.setEnabled(capacidadPersonas >= 1);
                    if(capacidadPersonas <= 0){
                        mensajeString = "No hay lugares disponibles para el dia: " + fecha.getText().toString();
                        personas.setText("0");
                    } else{
                        personas.setText("1");
                    }
                    if(capacidadPersonas == 1){
                        numeroPersonas = 1;
                        mensajeString ="Queda: " + capacidadPersonas + " lugar disponible para el dia: " + fecha.getText().toString();
                    }
                    if(numeroPersonasSQL > capacidadPersonas){
                        numeroPersonas = capacidadPersonas;
                        mensajeString ="Quedan: " + capacidadPersonas + " lugares disponibles para el dia: " + fecha.getText().toString();
                    }
                    if(numeroPersonasSQL < capacidadPersonas){
                        numeroPersonas = numeroPersonasSQL;
                        mensajeString ="Quedan: " + capacidadPersonas + " lugares disponibles para el dia: " + fecha.getText().toString();
                    }
                }
            }
            mensajeTxt.setText(mensajeString);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    protected void onPostExecute(String s) {
        pDialog.dismiss();
    }

}

Я хотел бы знать, как решить эту проблему, поскольку я не нашел много документацииоб этом.

...