2017-05-08 108 views
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)); 

    } 
} 

回答

0

你可以把一個Intent String一個額外的活動導致您的AnswerActivity

String buttonVisibility = "false"; 
Intent intent = new Intent(this, AnswerActivity.class); 
intent.putExtra("visibility", buttonVisibility); 
startActivity(intent); 

,然後在你的AnswerActivity,您可以通過

String visibility = this.getIntent.getStringExtra("visibility"); 

讀取字符串額外的價值可以使用可視性變量可以更改按鈕的可見性。然後,您可以將默認可見性設置爲View.VISIBLE,並且只能根據意圖所具有的字符串額外字符串進行更改。

注: 要留意,這是一個String而不是boolean

+0

感謝。我會盡力實施它。你能幫我解決**多一個問題**嗎?我更新了我的帖子。 – Ramona

+0

還有一個問題給你,喬布。我怎麼才能改變我的上面的代碼來爲'AnswerActivity'設置這個'buttonCheckAnswer'? – Ramona

+0

你會得到什麼字符串? – JeobMallari

相關問題