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