button.setenabled错误动画师只能在Looper线程android上运行

时间:2019-05-08 20:46:29

标签: android android-button

我想根据条件的结果启用或禁用“ 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();
    }

}

我想知道解决此问题的方法是什么,因为我没有找到很多有关此问题的文档。

0 个答案:

没有答案