Я создаю викторину в Android Studio. Мой testActivity.java имеет в нем адаптер пейджера, который отображает 3 фрагмента (вопросы). Когда я нажимаю кнопку «Конец», начинается новое действие «Result.java». Он показывает, сколько правильных ответов у меня есть, и я прошел тест. У меня есть еще одна кнопка в моей работе Result, которая после нажатия должна открыть тот же тест, который только что сделал человек, но с объяснениями ниже каждого вопроса. Я также хочу, чтобы флажки, которые человек проверил во время теста, будут проверяться, когда будут показаны результаты. Как я могу это сделать?Как показать результаты викторины?
Кстати, я заметил, что когда я нажимаю кнопку «Назад» (на моем телефоне), тот же тест открывается, когда мои выбранные ответы проверяются. Если бы я мог написать код, возвращающийся к предыдущему действию, и немного изменил его (добавляет текст с объяснением вопроса), это решит мою проблему.
testActivity.java:
public class testActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pager_adapter);
initialisePaging();
}
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this,fragment1.class.getName()));
fragments.add(Fragment.instantiate(this,fragment2.class.getName()));
fragments.add(Fragment.instantiate(this,fragment3.class.getName()));
PagerAdapter mPagerAdapter = new PagerAdapter(this.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
pager.setAdapter(mPagerAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_test, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
PagerAdapter.java:
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int arg0) {
return this.fragments.get(arg0);
}
@Override
public int getCount() {
return this.fragments.size();
}
public void setFragments(List<Fragment> fragments) {
this.fragments = fragments;
}
}
Result.java:
public class Result extends ActionBarActivity {
TextView win_lose, percent, correctAnswers;
int Ans1, Ans2, Ans3, percentAns;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_result);
calculateResult();
}
private void calculateResult() {
win_lose = (TextView)findViewById(R.id.textView9);
percent = (TextView)findViewById(R.id.textView10);
correctAnswers = (TextView)findViewById(R.id.textView7);
final SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
int Ans1 = app_preferences.getInt("answer_value1", 0);
int Ans2 = app_preferences.getInt("answer_value2", 0);
int Ans3 = app_preferences.getInt("answer_value3", 0);
float AnsNum = Ats1+Ats2+Ats3;
float percentAns = (AnsNum * 100.0f)/9;
int correctAns = 0;
if (Ans1 == 1){correctAns++;};
if (Ans2 == 1){correctAns++;};
if (Ans3 == 1){correctAns++;};
if (percentAns >= 70){
win_lose.setText("Win");
percent.setText(String.valueOf(percentAns)+" %");
percent.setTextColor(Color.parseColor("#FF1DD710"));
correctAnswers.setText(String.valueOf(correctAns)+"/9");
} else {
win_lose.setText("Lose");
percent.setText(String.valueOf(percentAns)+" %");
percent.setTextColor(Color.RED);
correctAnswers.setText(String.valueOf(correctAns)+"/9");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_result, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}