1
使用下面的代碼我希望此buttonCheckAnswer
僅在其他活動AnswerActivity.java
中可見。在第二個活動中顯示buttonCheckAnswer
我該如何設置?
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == (NUMBER_OF_QUESTIONS - 1))
checkSelected();
else if (buttonCheckAnswer.getVisibility() == View.VISIBLE)
buttonCheckAnswer.setVisibility(View.GONE);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
還有一個問題,
如何從這個getBooleanExtra
獲得兩個值R.string?到目前爲止,我只有一個價值,第二個似乎並不存在。
textViewDisplayResult.setText(getIntent().getBooleanExtra("KEY_ANSWER", true)?getString(R.string.Good_answer):getString(R.string.Wrong_answer));
全碼
public class MainActivity extends AppCompatActivity {
private static int NUMBER_OF_QUESTIONS = 3;
static boolean[] answer = new boolean[NUMBER_OF_QUESTIONS];
static boolean[] checked = new boolean[NUMBER_OF_QUESTIONS];
static boolean[] isAnswered = new boolean[NUMBER_OF_QUESTIONS];
private static Button buttonCheckAnswer;
private ViewPager viewPager;
private List<Fragment> fragmentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonCheckAnswer = (Button) findViewById(R.id.button_check_answers);
PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), fragmentList);
viewPager.setAdapter(adapter);
final Intent intent = new Intent(MainActivity.this, AnswerActivity.class);
buttonCheckAnswer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (checkAnswers())
intent.putExtra("KEY_ANSWER", R.string.Good_answer);
else
intent.putExtra("KEY_ANSWER", R.string.Wrong_answer);
startActivity(intent);
}
});
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == (NUMBER_OF_QUESTIONS - 1))
checkSelected();
else if (buttonCheckAnswer.getVisibility() == View.VISIBLE)
buttonCheckAnswer.setVisibility(View.GONE);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
public static void checkSelected() {
for (boolean radioChecked : checked) {
if (radioChecked) {
buttonCheckAnswer.setVisibility(View.VISIBLE);
break;
}
}
}
private boolean checkAnswers() {
for (boolean radioAnswer : answer) {
if (!radioAnswer) {
return false;
}
}
return true;
}
private boolean allAnswersChecked() {
for (boolean radioAnswer : isAnswered) {
if (!radioAnswer) {
return false;
}
}
return true;
}
}
而且AnswerActivity
public class AnswerActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_answer);
TextView textViewDisplayResult = (TextView) findViewById(R.id.text_view_display_result);
textViewDisplayResult.setText(getIntent().getExtras().getString("KEY_ALL_CHECKED"));
textViewDisplayResult.setText(getIntent().getBooleanExtra("KEY_ANSWER", false)?getString(R.string.Good_answer):getString(R.string.Wrong_answer));
}
}
感謝。我會盡力實施它。你能幫我解決**多一個問題**嗎?我更新了我的帖子。 – Ramona
還有一個問題給你,喬布。我怎麼才能改變我的上面的代碼來爲'AnswerActivity'設置這個'buttonCheckAnswer'? – Ramona
你會得到什麼字符串? – JeobMallari