Я новичок, когда дело доходит до Android Studio/Java, поэтому, пожалуйста, простите меня, если вопрос будет глупым.Отключение/включение кнопки «Продолжить»
Я почти закончил свое первое приложение, которое является простой игрой загадки; задается вопрос, и с правильным ответом вы переходите к следующему действию - и так далее. В главном меню есть два варианта, как обычно: Новая игра и продолжение. Кнопка «Продолжить» работает как прелесть, используя общие настройки - при нажатии она возвращает вас к последнему вопросу, на который вы не ответили.
Моя проблема: я не могу отключить кнопку Продолжить по умолчанию, а затем включен, когда на первый вопрос будет дан ответ. Ну, правда, я могу отключить его с помощью
@Override
public void onResume() {
super.onResume();
setContentView(R.layout.activity_main_menu_with_logo);
mContinueButton = (Button)findViewById(R.id.ContinueButton);
mContinueButton.setEnabled(false);
...
}
, но я не нашел способ сделать это позволило позже. Я подумал, что, написав
if (!(question00Answered)) {
mContinueButton.setEnabled(true);
Intent intent = new Intent(MainMenuWithLogo.this, Question00.class);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
finish();
, которая находится под «общественным ничтожной OnClick» бы заставить его работать, но нет, это не так. Я все еще не могу нажать, хотя на вопрос был дан ответ. Итак, какие-нибудь советы о том, что я должен исправить? Любая помощь была бы весьма признательна.
Вот полный скрипт:
MainMenuWithLogo.Java
public class MainMenuWithLogo extends AppCompatActivity {
private Button mStartInterrogationButton;
private VideoView mLogoprwto;
private Button mContinueButton;
MediaPlayer song;
@Override
protected void onPause() {
super.onPause();
song.release();
}
@Override
public void onResume() {
super.onResume();
setContentView(R.layout.activity_main_menu_with_logo);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
song = MediaPlayer.create(this, R.raw.chopin);
song.start();
song.setLooping(true);
mLogoprwto = (VideoView) findViewById(R.id.logoprwto);
mLogoprwto.setVideoPath("android.resource://its_destination/"+R.raw.teloslogo);
mLogoprwto.start();
mLogoprwto.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mLogoprwto.start();
}
});
mStartInterrogationButton = (Button)findViewById(R.id.StartInterrogationButton);
mStartInterrogationButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
startGame();
}
});
mContinueButton = (Button)findViewById(R.id.ContinueButton);
mContinueButton.setEnabled(false);
mContinueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences prefs = getSharedPreferences("Stage", MODE_PRIVATE);
boolean question00Answered = prefs.getBoolean("QuestionZero", false);
boolean question01Answered = prefs.getBoolean("QuestionOne", false);
boolean question02Answered = prefs.getBoolean("QuestionTwo", false);
if (!(question00Answered)) {
mContinueButton.setEnabled(true);
Intent intent = new Intent(MainMenuWithLogo.this, QuestionZero.class);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
finish();
} else if (!(question01Answered)) {
mContinueButton.setEnabled(true);
Intent intent = new Intent(MainMenuWithLogo.this, QuestionOne.class);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
finish();
} else if (!(question02Answered)) {
mContinueButton.setEnabled(true);
Intent intent = new Intent(MainMenuWithLogo.this, QuestionTwo.class);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
finish();
}else {
mContinueButton.setEnabled(true);
Intent intent = new Intent(MainMenuWithLogo.this, End.class);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
finish();
}
}
});
}
private void startGame() {
Intent intent = new Intent(this, Intro.class);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
finish();
}
@Override
public void onBackPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
Я начинаю понимать логику этого. Итак, насколько выше код, то я должен записать это так: «mContinueButton = (Button) findViewById (R.id.ContinueButton); mContinueButton.setEnabled (ложь); mContinueButton.setEnabled (правда);" under onResume() и удалить «mContinueButton.setEnabled (true)»; строки из onClick()? Или мне нужно также внести изменения в другие действия? Потому что я сделал то, что вы сказали, но теперь кнопка всегда включена. Кроме того, mContinueButton.setEnabled (false); появляется в желтом поле: http://i.imgur.com/wfbjWPV.jpg – Animated24
Я добавил более подробную информацию к ответу. – greeble31