NullPointerException dans oncreateView() de Fragment
Ce code ci-dessous montre une partie de l'activité où le fragment est ajouté.
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragment_container, srkt_frag);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
TabSpec specs1=mTab.newTabSpec("tag1");
specs1.setContent(R.id.fragment_container);
specs1.setIndicator("SRK/T");
mTab.addTab(specs1);
mTab est TabHost où la srkt_frag est affiché comme du contenu.
le fragment de classe est indiqué ci-dessous
public class Srkt_x extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//TODO Auto-generated method stub
View view=inflater.inflate(R.layout.activity_srkt_x,container,false);
TextView text = (TextView) getView().findViewById(R.id.srkt_power);
Float result=getArguments().getFloat("RESULT");
text.setText(String.valueOf(result));
return view;
}
}
après l'exécution du projet-je obtenir nullpointerexception à la ligne 21 je.e à
TextView text = (TextView) getView().findViewById(R.id.srkt_power);
mon fichier xml est indiqué ci-dessous
<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=".Srkt_x" >
<ScrollView
android:id="@+id/srkt_scrollView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@color/Black" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="433dp" >
<TextView
android:id="@+id/srkt_power"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/iolpower"
android:layout_toRightOf="@+id/iolpower"
android:clickable="false"
android:ems="10"
android:enabled="false"
android:fadingEdge="horizontal"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="center|left"
android:longClickable="false"
android:paddingTop="10dp"
android:textColor="@color/DeepSkyBlue"
android:textSize="15sp" />
<TextView
android:id="@+id/iolpower"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_marginTop="20dp"
android:gravity="bottom|center"
android:textColor="@color/White"
android:inputType="text"
android:text="@string/power"
android:textSize="20sp"
android:visibility="visible" />
<TableLayout
android:layout_width="228dp"
android:layout_height="match_parent"
android:layout_below="@+id/srkt_power"
android:layout_centerHorizontal="true"
android:layout_marginTop="33dp"
android:paddingTop="10dp" >
<TableRow
android:id="@+id/srkttableRow1"
android:layout_height="wrap_content"
android:background="@color/SkyBlue"
android:orientation="vertical"
android:showDividers="middle" >
<TextView
android:id="@+id/iolCol"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1"
android:background="@color/SkyBlue"
android:gravity="center"
android:text="@string/iol"
android:textColor="@color/White"
android:textSize="20sp" />
<TextView
android:id="@+id/refCol"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1"
android:background="@color/SkyBlue"
android:gravity="center"
android:text="@string/refr"
android:textColor="@color/White"
android:textSize="20sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow2"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd2"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref2"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow3"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd3"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref3"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow4"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd4"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref4"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow5"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd5"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref5"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow6"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd6"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref6"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow7"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd7"
android:layout_gravity="left|center"
android:layout_weight="1"
android:background="@color/DeepSkyBlue"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref7"
android:layout_gravity="right|center"
android:layout_weight="1"
android:background="@color/DeepSkyBlue"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow8"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd8"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref8"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow9"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd9"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref9"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow10"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd10"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref10"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow11"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd11"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref11"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
<TableRow
android:id="@+id/srkttableRow12"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/Black" >
<TextView
android:id="@+id/srktrnd12"
android:layout_gravity="left|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
<TextView
android:id="@+id/srktref12"
android:layout_gravity="right|center"
android:layout_weight="1"
android:gravity="center"
android:textColor="@color/White"
android:textSize="15sp" />
</TableRow>
</TableLayout>
</RelativeLayout>
</ScrollView>
le fichier journal est indiqué ci-dessous
03-26 23:49:22.333: D/AndroidRuntime(497): Shutting down VM
03-26 23:49:22.333: W/dalvikvm(497): threadid=1: thread exiting with uncaught exception (group=0x40015560)
03-26 23:49:22.353: E/AndroidRuntime(497): FATAL EXCEPTION: main
03-26 23:49:22.353: E/AndroidRuntime(497): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.iolcalci/com.example.iolcalci.Menu}: java.lang.NullPointerException
03-26 23:49:22.353: E/AndroidRuntime(497): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.os.Looper.loop(Looper.java:123)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.app.ActivityThread.main(ActivityThread.java:3683)
03-26 23:49:22.353: E/AndroidRuntime(497): at java.lang.reflect.Method.invokeNative(Native Method)
03-26 23:49:22.353: E/AndroidRuntime(497): at java.lang.reflect.Method.invoke(Method.java:507)
03-26 23:49:22.353: E/AndroidRuntime(497): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-26 23:49:22.353: E/AndroidRuntime(497): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-26 23:49:22.353: E/AndroidRuntime(497): at dalvik.system.NativeStart.main(Native Method)
03-26 23:49:22.353: E/AndroidRuntime(497): Caused by: java.lang.NullPointerException
03-26 23:49:22.353: E/AndroidRuntime(497): at com.example.iolcalci.Srkt_x.onCreateView(Srkt_x.java:21)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.app.Activity.performStart(Activity.java:3791)
03-26 23:49:22.353: E/AndroidRuntime(497): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1620)
03-26 23:49:22.353: E/AndroidRuntime(497): ... 11 more
Je ne suis pas en mesure de comprendre le problème .toute solution?
EDIT :
ligne 22:Float result=getArguments().getFloat("RÉSULTAT");
EDIT 2 : paramètre comme indiqué ci-dessous:
IOLPower_srkt=Srkt();
Bundle srkt_bundle=new Bundle();
srkt_bundle.putFloat("RESULT", IOLPower_srkt);
srkt_frag.setArguments(srkt_bundle);
ici Srkt() renvoie la valeur float
vérifiez code
IOLPower_srkt=Srkt();
Bundle srkt_bundle=new Bundle();
srkt_bundle.putFloat("RESULT", IOLPower_srkt);
srkt_frag.setArguments(srkt_bundle);
IOLPower_bink=Binkhorst();
Bundle bink_bundle=new Bundle();
bink_bundle.putFloat("RESULT", IOLPower_bink);
bink_frag.setArguments(bink_bundle);
IOLPower_srk2=Srk2();
if((Math.ceil(IOLPower_srk2)-IOLPower_srk2)>0.5){
srk2_rnd=(float) Math.floor(IOLPower_srk2);
}else{
srk2_rnd=(float) Math.ceil(IOLPower_srk2);
}
Bundle srk2_bundle=new Bundle();
srk2_bundle.putFloat("RESULT", srk2_rnd);
srk2_frag.setArguments(srk2_bundle);
IOLPower_holl=Holladay();
Bundle holl_bundle=new Bundle();
holl_bundle.putFloat("RESULT", IOLPower_holl);
holl_frag.setArguments(holl_bundle);
}
});
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragment_container, srkt_frag);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
TabSpec specs1=mTab.newTabSpec("tag1");
specs1.setContent(R.id.fragment_container);
specs1.setIndicator("SRK/T");
mTab.addTab(specs1);
TabSpec specs2=mTab.newTabSpec("tag2");
specs2.setContent(R.id.fragment_container);
specs2.setIndicator("SRK II");
mTab.addTab(specs2);
TabSpec specs3=mTab.newTabSpec("tag3");
specs3.setContent(R.id.fragment_container);
specs3.setIndicator("HOLLADAY");
mTab.addTab(specs3);
TabSpec specs4=mTab.newTabSpec("tag4");
specs4.setContent(R.id.fragment_container);
specs4.setIndicator("BINKHORST");
mTab.addTab(specs4);
OriginalL'auteur human | 2013-03-26
Vous devez vous connecter pour publier un commentaire.
Comment résoudre: l'indice de votre journal est
Caused by: java.lang.NullPointerException
at com.example.iolcalci.Srkt_x.onCreateView(Srkt_x.java:21)
qui dit qu'il est un
Null Pointer Exception
àSrkt_x.java line 21
alors, allez à la ligne 21 et de voir laquelle de ces valeurs est égale ànull
et jeter l'exception.Le problème avec votre code est avec
TextView text = (TextView) getView().findViewById(R.id.srkt_power);
oùgetView()
estnull
comme il n'a pas été créé.Le bon code est:
vous devez utiliser le gonflés vue afin d'obtenir le voulait TextView par id.
À la fin de
onCreateView
lorsque lereturn view;
est exécutée,getView()
sera de retour leview
valeur au lieu denull
.Comme suggéré dans l'Android page de documentation pour Fragment, voir
TitlesFragment
etDetailsFragment
, utilisez quelque chose comme le code ci-dessous afin de fixer les argumentsvoir ma modification au code, vous devriez maintenant voir
result not included
dans le textview jusqu'à ce que vous résoudre le problème avec les Arguments manquantsce qui pourrait être l'erreur pour ne pas avoir d'arguments?
Dans votre affiché le code il n'y a pas appelé
setArguments
méthode découvrez l'android dev de comment utiliser des fragments de la recherche pour setArguments/getArguments developer.android.com/reference/android/app/Fragment.htmlvérifiez le code modifié
OriginalL'auteur madlymad
Au lieu de
getView()
utilisation de la vue que vous venez gonflés, car la vue n'est pas retourné, vous obtiendrez un NPEPeut-être comme ceci:
Pas de problème, juste un petit conseil 🙂
mais maintenant, il montre des NPE dans la ligne 22!?
pourriez-vous point hors ligne dans votre code est de 22? vous devriez poster tout le code, il serait plus facile pour nous.
édité
OriginalL'auteur Parvaz Bhaskar
Remplacer
avec
OriginalL'auteur TronicZomB
La raison du bug et de confusion est due à une mauvaise compréhension de comment la Android boucle d'événement de travaux.
Vous appelez
getView()
à un moment où le fragment n'a pas encore de. Le fragment aura seulement une vue aprèsonCreateView
la fin de l'exécution. Le point deonCreateView
est "avoir le fragment instancier la vue de l'interface utilisateur".Que vous devriez faire
getActivity().findViewById
.OriginalL'auteur yarian
Essayer de faire ce que vous devez faire à l'intérieur de la méthode
onViewCreated()
, qui vous doit l'emporter. N'oubliez pas d'appelersuper()
.OriginalL'auteur Joaquin Iurchuk