Подождите 3 секунды или пользовательский клик
Я пытаюсь создать ситуацию, когда я жду небольшой промежуток времени, скажем 3 секунды, и продолжаю. Но если пользователь нажимает на мою экранную кнопку, то в любом случае продолжаю. Оба события будут вызывать одинаковое поведение, а именно обновлять текст на экране. Какие-нибудь мысли??
Новичок в Android, но он работает
заранее спасибо
2 ответа
Решение
Попробуйте что-то вроде этого:
private Thread thread;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutxml);
final MyActivity myActivity = this;
thread= new Thread(){
@Override
public void run(){
try {
synchronized(this){
wait(3000);
}
}
catch(InterruptedException ex){
}
// TODO
}
};
thread.start();
}
@Override
public boolean onTouchEvent(MotionEvent evt)
{
if(evt.getAction() == MotionEvent.ACTION_DOWN)
{
synchronized(thread){
thread.notifyAll();
}
}
return true;
}
Он ожидает 3 секунды, чтобы продолжить, но если пользователь касается экрана, поток уведомляется, и он перестает ждать.
Попробуйте следующее,
button = (Button) findViewById(R.id.buttonView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Runnable clickButton = new Runnable() {
@Override
public void run() {
// whatever you would like to implement when or after clicking button
}
};
button.postDelayed(clickButton, 3000); //Delay for 3 seconds to show the result
}