2

I want to use a delay but inside have a condition. Anything like that.

This method is the delay, inside when time is finish i call method responde(), but setText not work.

public void pensar(View v){
    respuesta.setText("Ummmm");
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    responde();
                }
            });
        }
    }, 1000);
}

Responde() method:

public void responde() {
    if (sino == 1) {
        respuesta.setText(R.string.yes);
    } else if (sino == 2) {
        respuesta.setText(R.string.no);
    } else {
        respuesta.setText(R.string.dontknow);
    }
    sino = 0;
}

The App is not crash, just not work.

Mike
  • 4,550
  • 4
  • 33
  • 47
Aris Guimerá
  • 1,095
  • 1
  • 12
  • 27

1 Answers1

0

This is all my main class:

public class MainActivity extends AppCompatActivity {
private Button pregunta;
private TextView respuesta;
int menuCode = 0;
boolean respuestasPersonalizas = false;

int sino = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.activity_main);

    pregunta = (Button)findViewById(R.id.pregunta);
    respuesta = (TextView)findViewById(R.id.respuesta);

}

public void responde() {

    if (respuestasPersonalizas = false) {



        if (sino == 1) {
            respuesta.setText(R.string.yes);

        } else if (sino == 2) {
            respuesta.setText(R.string.no);
        } else {
            respuesta.setText(R.string.dontknow);
        }

        sino = 0;
    }
}




public void pensar(View v){
    respuesta.setText("Ummmm");
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    responde();
                }
            });
        }

    }, 1000);

}


//LOGICA
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();

    switch (keyCode) {
        case KeyEvent.KEYCODE_VOLUME_UP:
            if (action == KeyEvent.ACTION_DOWN) {
                sino = 1;
            }else if(menuCode == 0){
                menuCode = 1;
            }else if( menuCode == 1){
                menuCode = 2;
            }else{
                menuCode=0;
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_DOWN) {
                sino = 2;
            }else if(menuCode == 2){
                menuCode = 3;
            }else{
                menuCode = 0;
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
    }


}


//ACCEDER AL MENÚ

@Override
public boolean onTouchEvent(MotionEvent e) {
    accederMenu();


    return true;
}
public void accederMenu(){
    Intent objIntent;
    if(menuCode == 3){
        objIntent = new Intent(this, menu.class);
        startActivity(objIntent);
        menuCode = 0;
    }else{
        menuCode = 0;
    }




}

}

Aris Guimerá
  • 1,095
  • 1
  • 12
  • 27