2017-05-08 109 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

相关问题