2017-08-27 81 views
2

我正在制作测验应用程序,因此我想要我的MenuButtonNextButton视图在开始时不可见但在满足特定条件后我希望视图再次可见,因此我使用了findViewById(R.id.MenuButton).setVisibility(View.VISIBLE);NextButton一样,但仍然这些视图是隐形的。我做错了什么?即使设置其可见性后,按钮视图也不可见

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 

xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_gravity="center"> 

<TextView 
    android:id="@+id/Question" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="46dp" 
    android:text="TextView" 
    android:gravity="center" 
    android:textSize="25dp" 
    android:textColor="#000000"/> 

<RadioButton 
    android:id="@+id/radioButton1" 
    android:layout_width="wrap_content" 
    android:layout_height="25dp" 
    android:text="RadioButton1" 
    android:textSize="20sp" 
    android:textColor="#000000" 
    android:layout_marginLeft="43dp" 
    android:layout_marginStart="43dp" 
    android:layout_marginTop="54dp" 
    android:layout_below="@+id/Question" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:onClick="On_RadioButton1_Click"/> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/linearLayout" 
    android:orientation="horizontal" 
    android:layout_marginTop="55dp" 
    android:layout_below="@+id/radioButton4" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true"> 

    <Button 
     android:id="@+id/MenuButton" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_marginLeft="40dp" 
     android:textSize="20dp" 
     android:text="menu" /> 

    <Button 
     android:id="@+id/NextButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="20dp" 
     android:layout_marginLeft="125dp" 
     android:text="next" /> 

</LinearLayout> 

</RelativeLayout> 

//的Java文件

private int Question_no=0; 
private Boolean Boolean_Var=false; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_question1); 

    String[] Question_Array = getResources().getStringArray(R.array.Question1); 
    TextView Questions = (TextView) findViewById(R.id.Question); 
    Questions.setText(Question_Array[Question_no]); 

    String[] Radio_Button1_Array = getResources().getStringArray(R.array.Option_1); 
    RadioButton Radio_Button1 = (RadioButton) findViewById(R.id.radioButton1); 
    Radio_Button1.setText(Radio_Button1_Array[Question_no]); 

    findViewById(R.id.MenuButton).setVisibility(View.INVISIBLE); 
    findViewById(R.id.NextButton).setVisibility(View.INVISIBLE); 

} 
public void On_RadioButton1_Click(View view) 
{ 
    if(Boolean_Var==false) 
    { 
     String[] CorrectAns_Array = getResources().getStringArray(R.array.Answer1); 
     String CorrectAns = CorrectAns_Array[Question_no]; 
     String[] Answer_Array = getResources().getStringArray(R.array.Option_1); 
     String Answer = Answer_Array[Question_no]; 


     if(Answer.equals(CorrectAns)) 
     { 
      RadioButton Right_Ans = (RadioButton) findViewById(R.id.radioButton1); 
      Right_Ans.setTextColor(Color.GREEN); 
      AnswerSubmitted(); 
     } 
     else 
     { 
      RadioButton Wrong_Ans = (RadioButton) findViewById(R.id.radioButton1); 
      Wrong_Ans.setTextColor(Color.RED); 
      GreenTick(); 
      AnswerSubmitted(); 
     } 
    } 
    Boolean_Var=true; 

} 
public void AnswerSubmitted() 
{ 
    findViewById(R.id.MenuButton).setVisibility(View.VISIBLE); 
    findViewById(R.id.NextButton).setVisibility(View.VISIBLE); 
} 
+0

在您的代码中,链接到textView问题的按钮的位置。如果问题文本太长,按钮可能不在屏幕上。 – SolderingIronMen

+0

文字颜色变红吗? – Ogbe

+0

在你的课堂内制作一个按钮的全局对象。在onCreate中初始化它。并使用该对象隐藏/显示 –

回答

1

你应该让你的按钮参考,并请参考setVisibility。您目前正在做的是将可见性INVISIBLE设置为一个参考,并将其设置为VISIBLE

Button nextButton; 

//in onCreate 
nextButton = (Button)findViewById(R.id.nextButton); 
nextButton.setVisibility(View.INVISIBLE); 

//in AnswerSubmitted 
nextButton.setVisibility(View.VISIBLE); 
0

我想你应该告诉android,当你点击单选按钮时你想执行该方法。通过加入:

Radio_Button1.setOnClickListener(new OnClickListener(){ 
public void onClick(View v) { 
    On_RadioButton1_Click(v); 
} 
}); 

因此,您可以在每次单击时执行该方法。 添加结束于OnCreate

相关问题