2017-08-27 1 views
2

Ich mache eine Quiz-App daher wollte ich meine MenuButton und NextButton Ansicht Unsichtbar am Anfang, aber nach der Erfüllung einer bestimmten Bedingung wollte ich die Ansicht wieder sichtbar sein, damit ich findViewById(R.id.MenuButton).setVisibility(View.VISIBLE); verwendet und das selbe für die NextButton, aber diese Ansicht war unsichtbar. Was mache ich falsch?Button View ist nicht sichtbar, auch nachdem seine Sichtbarkeit wahr

<?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-Datei

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

In Ihrem Code, die Position der Schaltflächen mit textView Question verknüpft. Bei einem langen Fragetext sind die Schaltflächen möglicherweise nicht auf dem Bildschirm. – SolderingIronMen

+0

Wird die Textfarbe rot? – Ogbe

+0

Machen Sie ein globales Objekt Ihrer Schaltfläche in Ihrer Klasse. Initialisieren Sie es in onCreate. Und benutze das Objekt für verstecken/zeigen –

Antwort

1

Sie sollten einen Verweis auf Ihre Tasten erhalten und setVisibility auf der Referenz nennen. Was Sie gerade tun, ist die Sichtbarkeit INVISIBLE auf einer Referenz und die Einstellung VISIBLE auf einer anderen.

0

Ich denke, Sie sollten Android sagen, dass Sie diese Methode ausführen möchten, wenn Sie auf Radiobutton klicken. durch Hinzufügen von:

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

So können Sie diese Methode ausgeführt werden, immer wenn Sie klicken. Fügen Sie es am Ende der OnCreate

Verwandte Themen