android.vue.InflateException: Binaire dans le fichier XML de la ligne #7: Erreur de gonflage de classe fragment
Je sais que des questions similaires, comme cela a été répondu, mais il me semble avoir fait ce que le tutoriel proposé et de la lecture à partir d'autres postes, mais encore obtenir le Gonfleur d'erreur. Pas sûr de ce que je fais de mal. Veuillez vérifier le code. Merci beaucoup.
Edit: j'ai deux fragments dans une activité. J'ai un bouton dans un fragment et un textview dans l'autre. Je suis en train d'essayer de comprendre comment les fragments de travail j'ai donc fait ce code moi-même après la lecture de la documentation. Lorsque le bouton est déclenché dans un fragment, il envoie une valeur à l'autre fragment de l'activité. Je ne suis pas en mesure d'obtenir le fragment de gonfler
MainActivity.java
import com.transport.mbtalocpro.PredictedTimeFragment.ButtonClickListener;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity implements ButtonClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void sendCounter(int count) {
TestFrag testF = (TestFrag) getSupportFragmentManager().findFragmentById(R.id.bottomHalf);
if(testF != null) testF.setCounter(String.valueOf(count));
}
}
PredictedTimeFragment.java
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.InflateException;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
public class PredictedTimeFragment extends Fragment {
ButtonClickListener bListener;
public interface ButtonClickListener {
public void sendCounter(int count);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
try {
View view = inflater.inflate(R.layout.prediction_time, container, false);
Button button = (Button) view.findViewById(R.id.test);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
test(v);
}
});
} catch(InflateException e) {
e.printStackTrace();
System.out.println("Predicted Time Fragment");
}
return super.onCreateView(inflater, container, savedInstanceState);
}
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
bListener = (ButtonClickListener) activity;
} catch (ClassCastException e) {
System.out.println("must implemenet Listener");
}
}
public void test(View view) {
bListener.sendCounter(23);
}
}
TestFrag.java
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.InflateException;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class TestFrag extends Fragment {
@Override
public View onCreateView(LayoutInflater inflator, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflator, container, savedInstanceState);
try {
View view = inflator.inflate(R.layout.test_frag, container, false);
} catch(InflateException e) {
e.printStackTrace();
System.out.println("Test Fragment");
}
return super.onCreateView(inflator, container, savedInstanceState);
}
public void setCounter(String textS) {
TextView text = (TextView) getView().findViewById(R.id.test1);
text.setText((String) textS);
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical">
<fragment
android:id="@+id/topHalf"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.5"
android:name="com.transport.mbtalocpro.PredictedTimeFragment"/>
<fragment
android:id="@+id/bottomHalf"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="0.5"
android:name ="com.transport.mbtalocpro.TestFrag"/>
</LinearLayout>
predicted_time.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/test"
android:text="Test"
android:layout_width="fill_parent"
android:layout_height="30dp"
/>
</LinearLayout>
test_frag.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/test1"
android:layout_width="fill_parent"
android:layout_height="40dp"/>
</LinearLayout>
Je suis en train de soutien pré-peigne de miel versions trop et je pense que je suis l'importation de toutes les bibliothèques de prise en charge.
J'ai ajouté quelques détails sur le code. Désolé à ce sujet. J'étais pressé. Merci.
Vous n'avez pas besoin de la super appels dans vos fragments plus de ride de onCreateView; il suffit de retourner votre point de vue.
OriginalL'auteur Guru | 2013-03-30
Vous devez vous connecter pour publier un commentaire.
Supprimer votre instruction d'importation:
Et de les importer à nouveau avec le pop-up d'importation suggestion. Je ne sais pas pourquoi mais ça fonctionne toujours pour moi.
OriginalL'auteur Renan Grativol
Dans le onCreateView rappels, vous devrez retourner la vue qui vous est gonflé. De cette façon, le système connaît la vue de tirage. Sinon, si vous retournez simplement super.onCreateView(...) de cette façon, aucune INTERFACE utilisateur n'apparaîtra.
Essayez ceci:
Modifier la valeur de retour de l'autre Fragment en conséquence.
OriginalL'auteur Steve Benett
Pour corriger l'erreur:
Dans Le Manifeste:
.fichier xml, vous devez supprimer le code ci-dessous:
Parce que l'erreur est de l'erreur de mémoire
OriginalL'auteur Anh Duy
Essayez de remplacer le fragment dans votre xml avec android.de soutien.v4.app.Fragment
EDIT: Aussi essayer d'appeler super quand vous avez terminé vos points de vue dans onCreateView je.e qu'une seule fois. supprimez l'appel à la super au début, et voir si cela aide
avez-vous essayé de supprimer les de votre appel au super? puisque vous êtes de l'appeler deux fois. Pouvez-vous poster le logcat?
En fait j'ai refait mon travail et il a commencé à travailler, je pense que cela pourrait être le nom du fragment dans le xml (android:name) je l'ai changé pour class="nom du fragment de classe", mais je n'avais fait qu'une fois avant , qu'il n'avait pas travaillé. Je ne sais pas pourquoi le code ci-dessus ne fonctionne pas. en tout cas merci pour votre aide.
OriginalL'auteur Parvaz Bhaskar
modifier votre mise en page widget id ,ça fonctionne pour moi.
OriginalL'auteur ptChan