Changement d'Orientation d'un Crash de l'Application
Je suis à l'aide de fragments et lorsque je change l'orientation du crash de l'application.
Voici le journal de chat:
05-29 05:56:52.158: E/AndroidRuntime(1428): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bajraregistertesteclipse/com.example.bajraregistertesteclipse.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class fragment
05-29 05:56:52.158: E/AndroidRuntime(1428): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-29 05:56:52.158: E/AndroidRuntime(1428): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3692)
05-29 05:56:52.158: E/AndroidRuntime(1428): at android.app.ActivityThread.access$700(ActivityThread.java:141)
05-29 05:56:52.158: E/AndroidRuntime(1428): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1240)
05-29 05:56:52.158: E/AndroidRuntime(1428): at android.os.Handler.dispatchMessage(Handler.java:99)
05-29 05:56:52.158: E/AndroidRuntime(1428): at android.os.Looper.loop(Looper.java:137)
05-29 05:56:52.158: E/AndroidRuntime(1428): at android.app.ActivityThread.main(ActivityThread.java:5039)
05-29 05:56:52.158: E/AndroidRuntime(1428): at java.lang.reflect.Method.invokeNative(Native Method)
05-29 05:56:52.158: E/AndroidRuntime(1428): at java.lang.reflect.Method.invoke(Method.java:511)
05-29 05:56:52.158: E/AndroidRuntime(1428): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-29 05:56:52.158: E/AndroidRuntime(1428): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-29 06:17:02.864: E/AndroidRuntime(1554): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bajraregistertesteclipse/com.example.bajraregistertesteclipse.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class fragment
05-29 06:17:02.864: E/AndroidRuntime(1554): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
05-29 05:56:52.158: E/AndroidRuntime(1428): Caused by: java.lang.IllegalStateException: Fragment com.example.bajraregistertesteclipse.SecondFragment did not create a view.
Voici mon First_Test_Fragment classe
package com.example.bajraregistertesteclipse;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
public class First_Test_Fragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//TODO Auto-generated method stub
View view=inflater.inflate(R.layout.first_test_fragment,container,false);
Button btnLogin=(Button)view.findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
FirstFragment firstFragment=new FirstFragment();
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.detailFragment, firstFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
Button btnSignUp=(Button)view.findViewById(R.id.btnSignUp);
btnSignUp.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
SignUp signup=new SignUp();
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.detailFragment, signup);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
return view;
}
}
}
Voici mon FirstFragment Classe
package com.example.bajraregistertesteclipse;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class FirstFragment extends Fragment {
LoginDataBaseAdapter loginDataBaseAdapter;
EditText loginTestUser,loginTestPassword;
String userName,password,confirmpassword;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//TODO Auto-generated method stub
View view = inflater.inflate(R.layout.firstfragment, container, false);
loginTestUser=(EditText)view.findViewById(R.id.editTextUserNameToLogin);
loginTestPassword= (EditText)view.findViewById(R.id.editTextPasswordToLogin);
Button btnLogin = (Button) view.findViewById(R.id.buttonSignIn);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
//TODO Auto-generated method stub
// Toast.makeText(getActivity(),"BttonLoginPressed",Toast.LENGTH_SHORT).show();
//get The User name and Password
userName=loginTestUser.getText().toString();
password=loginTestPassword.getText().toString();
//fetch the Password form database for respective user name
String storedPassword=loginDataBaseAdapter.getSinlgeEntry(userName);
//check if the Stored password matches with Password entered by user
if(password.equals(storedPassword))
{
Toast.makeText(getActivity(), "Congrats: Login Successfull", Toast.LENGTH_LONG).show();
//Intent intent = new Intent(getActivity(), Admin_Page.class);
// getActivity().startActivity(intent);
Intent open=new Intent("com.example.bajraregistertesteclipse.ADMIN_PAGE");
getActivity().startActivity(open);
//startActivity(open);
}
else
{
Toast.makeText(getActivity(), "User Name or Password does not match", Toast.LENGTH_LONG).show();
}
}
});
return view;
}
@Override
public void onCreate(Bundle savedInstanceState) {
//TODO Auto-generated method stub
super.onCreate(savedInstanceState);
loginDataBaseAdapter=new LoginDataBaseAdapter(getActivity());
loginDataBaseAdapter=loginDataBaseAdapter.open();
}
}
Mon Mainfest.xml est :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.bajraregistertesteclipse"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="13"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.example.bajraregistertesteclipse.MAINACTIVITY" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SignUp"></activity>
<activity android:name=".Admin_Page">
</activity>
</application>
Maintenant mon problème est de plantage de l'Application lors de la modification d'orientation et Lorsque vous cliquez le bouton de la nouvelle activité Admin_Page devrait être initiatied mais plantage de l'application.
Vous en remercie d'Avance!!!!!
- Le problème n'est probablement pas dans le fichier de manifeste, mais dans votre fichier de mise en page.
- je ne peux pas comprendre mon problème.....
Vous devez vous connecter pour publier un commentaire.
ajouter ceci dans votre fichier manifeste dans votre activité.
Ajouter cette ligne pour toutes vos activités à éviter la collision avec les changements d'orientation.
Cela permettra d'éviter de l'activité en cours de chargement, encore et encore sur les changements d'orientation.
Pour un peu plus d'informations que vous avez réellement faire avec
configChanges
voici le lien pour la documentation Android.Et comment gérer les
configuration changes
vous pouvez trouver ici.ajouter ceci dans toutes vos activités en
Manifest
Utilisation
au lieu de
Vous pourriez aussi avoir besoin de changer votre activité d'étendre FragmentActivity au lieu de simplement l'Activité. Plus la discussion Ici.
Il y a un autre cas, j'ai trouvé, Si vous utilisez de différentes XML pour le Portrait et Paysage. Ensuite, différentes de l'élément racine ou la vue peut conduire à des crash par exemple --
Mon Portrait XML est --
Mon Paysage xml est --
Pourrait être utile à quelqu'un.