2015-02-08 3 views
0

Мне просто интересно, можно ли изменить на другую деятельность, после того, как галочка была отмечена галочкой, и как только ее отметили, она переходит к этой активности через 5 секунд или загружает что-то, что говорит, подождите, потом измените , И если эта активность была возвращена, этот флажок больше не проверяется.Android Checkbox ticked change activity

У меня нет кода, потому что я просто читал документацию и не нашел ничего, поэтому просто хочу знать, сделал ли кто-нибудь что-то подобное, и если бы они могли делиться, пожалуйста?

Спасибо!

ответ

1
checkBox.setChecked(false); //put this in onResume() or onCreate() or something 

checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 
      if (isChecked){ 
       new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
        Intent i = new Intent(FirstActivity.this, SecondActivity.class); 
        startActivity(i); 
        FirstActivity.this.finish(); 
        } 
       }, 5000); //wait for 5 seconds 
      } 
     } 
    }); 
+0

Идеальные ура для этого! – Bimal

+0

Я думаю, что этот метод вызовет проблему ... когда вы выполняете проверку и снимите флажок часто в течение 5 секунд. Пожалуйста, подтвердите, что он вызывает какие-либо проблемы или нет ... Он может открывать несколько действий в стеке и когда вы нажмете кнопку «Назад», а затем вы увидите тот же экран ... –

+0

Либо добавьте флаг для проверки того, что эта активность уже запущена очередь для запуска или использование launchMode singleTop, чтобы избежать нескольких действий. Не уверен, что это вариант использования задержки, но в любом случае! – Necronet

1

кажется, что вы можете сделать это либо в onCheckListener или onClickListener и начать следующую деятельность с startActivity(intent)

Если необходимо задержать вы можете использовать метод Handler.postDelayed, но не совсем уверен, если я понял ваш рабочий процесс, поэтому, пожалуйста, попробуйте объяснить это немного подробнее.