2016-04-25 1 views
2

Je crée l'application de quiz en utilisant php mysql json parsor, Dans ce qui a couru le programme, il montre "Caused by: android.view.InflateException: Binary XML file line #44: Error inflating class RadioButton" l'erreur sur créer un fichier XML. J'utilise ces codes dans QuizActivity.java Crashlog jetteront l'erreur sur la création vie du contenu et la mise en page gonfleurErreur gonflement de la classe RadioButton

public class QuizActivity extends AppCompatActivity { 
private TextView quizQuestion; 
private RadioGroup radioGroup; 
private RadioButton optionOne; 
private RadioButton optionTwo; 
private RadioButton optionThree; 
private RadioButton optionFour; 
private int currentQuizQuestion; 
private int quizCount; 
private QuizWrapper firstQuestion; 
private List<QuizWrapper> parsedObject; 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_quiz); 
    // setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); quizQuestion = (TextView)findViewById(R.id.quiz_question); 
    radioGroup = (RadioGroup)findViewById(R.id.radioGroup); 
    optionOne = (RadioButton)findViewById(R.id.radio0); 
    optionTwo = (RadioButton)findViewById(R.id.radio1); 
    optionThree = (RadioButton)findViewById(R.id.radio2); 
    optionFour = (RadioButton)findViewById(R.id.radio3); 
    Button previousButton = (Button)findViewById(R.id.previousquiz); 
    Button nextButton = (Button)findViewById(R.id.nextquiz); 
    AsyncJsonObject asyncObject = new AsyncJsonObject(); 
    asyncObject.execute(""); 
    nextButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) 
     { 
      int radioSelected = radioGroup.getCheckedRadioButtonId(); 
      int userSelection = getSelectedAnswer(radioSelected); 
      int correctAnswerForQuestion = firstQuestion.getCorrectAnswer(); 
      if(userSelection == correctAnswerForQuestion){ 
       // correct answer 
       Toast.makeText(QuizActivity.this, "You got the answer correct", Toast.LENGTH_LONG).show(); 
       currentQuizQuestion++; 
       if(currentQuizQuestion >= quizCount){ 
        Toast.makeText(QuizActivity.this, "End of the Quiz Questions", Toast.LENGTH_LONG).show(); 
        return; 
       } 
       else{ 
        firstQuestion = parsedObject.get(currentQuizQuestion); 
        quizQuestion.setText(firstQuestion.getQuestion()); 
        String[] possibleAnswers = firstQuestion.getAnswers().split(","); 
        uncheckedRadioButton(); 
        optionOne.setText(possibleAnswers[0]); 
        optionTwo.setText(possibleAnswers[1]); 
        optionThree.setText(possibleAnswers[2]); 
        optionFour.setText(possibleAnswers[3]); 
       } 
      } 
      else{ 
       // failed question 
       Toast.makeText(QuizActivity.this, "You chose the wrong answer", Toast.LENGTH_LONG).show(); 
       return; 
      } 
     } 
    }); 
    previousButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      currentQuizQuestion--; 
      if(currentQuizQuestion < 0){ 
       return; 
      } 
      uncheckedRadioButton(); 
      firstQuestion = parsedObject.get(currentQuizQuestion); 
      quizQuestion.setText(firstQuestion.getQuestion()); 
      String[] possibleAnswers = firstQuestion.getAnswers().split(","); 
      optionOne.setText(possibleAnswers[0]); 
      optionTwo.setText(possibleAnswers[1]); 
      optionThree.setText(possibleAnswers[2]); 
      optionFour.setText(possibleAnswers[3]); 
     } 
    }); 
} 

XML:

<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" 
tools:context=".QuizActivity"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/question" 
    android:id="@+id/quiz_question" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginEnd="10dp" 
    android:layout_marginStart="10dp" 
    android:layout_marginTop="20dp" 
    android:textSize="20sp" 
    android:textColor="#000000" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

<RadioGroup 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/quiz_question" 
    android:layout_alignLeft="@+id/quiz_question" 
    android:layout_alignStart="@+id/quiz_question" 
    android:layout_marginTop="40dp" 
    android:id="@+id/radioGroup"> 

    <RadioButton 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:id="@+id/radio0" 
     android:textSize="15sp" 
     android:textColor="#000000" 
     android:text="@string/app_name" 
     android:layout_marginBottom="10dp" 
     android:paddingLeft="20dp" 
     android:button="@drawable/radio_bg" 
     android:checked="false" /> 

    <RadioButton 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:id="@+id/radio1" 
     android:textSize="15sp" 
     android:textColor="@color/black" 
     android:text="@string/app_name" 
     android:layout_marginBottom="10dp" 
     android:paddingLeft="20dp" 
     android:button="@drawable/radio_bg" 
     android:checked="false" /> 

    <RadioButton 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:id="@+id/radio2" 
     android:textSize="15sp" 
     android:textColor="@color/black" 
     android:text="@string/app_name" 
     android:layout_marginBottom="10dp" 
     android:paddingLeft="20dp" 
     android:button="@drawable/radio_bg" 
     android:checked="false" /> 

    <RadioButton 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:id="@+id/radio3" 
     android:textSize="15sp" 
     android:textColor="@color/black" 
     android:text="@string/app_name" 
     android:paddingLeft="20dp" 
     android:button="@drawable/radio_bg" 
     android:checked="false" /> 

    </RadioGroup> 

<Button 
    android:layout_height="wrap_content" 
    android:layout_width="160dp" 
    android:gravity="center" 
    android:id="@+id/nextquiz" 
    android:textColor="@color/white" 
    android:text="@string/next_questions" 
    android:background="@drawable/quizbutton" 
    android:layout_marginRight="10dp" 
    android:padding="5dp" 
    android:layout_alignParentRight="true" 
    android:layout_alignBaseline="@+id/previousquiz"/> 

<Button 
    android:layout_height="wrap_content" 
    android:layout_width="160dp" 
    android:gravity="center" 
    android:id="@+id/previousquiz" 
    android:textColor="@color/white" 
    android:text="@string/previous_questions" 
    android:background="@drawable/quizbutton" 
    android:layout_below="@+id/radioGroup" 
    android:layout_alignLeft="@+id/radioGroup" 
    android:padding="5dp" 
    android:layout_marginTop="20dp" 
    android:layout_alignStart="@+id/radioGroup" /> 

Caused by: android.view.InflateException: Binary XML file line #45: Error inflating class RadioButton 
+0

Veuillez ajouter le journal de plantage – USKMobility

+0

n'utilisez pas @ @ id, sauf si vous voulez donner un nouveau 'id'. pour toutes les autres références aux vues, faites seulement '@ id'. Mais je ne pense pas que cela provoque cette erreur .... – Opiatefuchs

+0

et si vous avez fait des changements plus tôt, nettoyez votre projet .... – Opiatefuchs

Répondre

0

Je pense que vous avez manqué l'orientation Attribut dans l'élément <RadioGroup>. Essayez,

android:orientation = "vertical" 

dans votre élément < RadioGroup> et puis essayer de nettoyer et reconstruire votre projet.

+1

J'ai essayé d'utiliser de ce "android: orientation =" vertical "" mais rien ne change –

+0

J'ai exécuté votre code et il fonctionne parfaitement. Peut être le problème est avec le sélecteur que vous avez spécifié avec l'attribut de bouton. Assurez-vous que votre sélecteur est correct. Sinon, il n'y a pas de problème dans votre code. –