Make sure your arguments aren't null
Why does my app force closes on using getarguments().getstring(key) in android?
-
16-07-2023 - |
Pregunta
I have the following fragments. 1. addtaskfragment extends Fragment 2. mycontacts extends Fragment I am at present doing the following. I have some textfields and button in addtaskfragment. On clicking the button I can go to mycontacts fragment. I am passing a value from mycontacts to addtaskfragment. The problem is that my app is giving force closes. My codes are as below. Please tell me step by step what to do?
addtaskfragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.addtasknew, container,
false);
final String strtext=getArguments().getString("k");
addcontacts.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Fragment fr;
fr=new mycontacts();
FragmentManager fm=getFragmentManager();
android.app.FragmentTransaction ft=fm.beginTransaction();
Bundle args = new Bundle();
args.putString("temp","1");
// args.putString("taskname",datepick.getText().toString());
// Log.i("temp from long click",""+temp);
fr.setArguments(args);
ft.replace(R.id.content_frame, fr);
ft.commit();
}
});
}
mycontacts
Fragment fr;
fr=new addtaskfragment();
FragmentManager fm=getFragmentManager();
android.app.FragmentTransaction ft=fm.beginTransaction();
Bundle args = new Bundle();
args.putString("CID", cid);
args.putString("k", cid);
Log.i("cid",""+args);
fr.setArguments(args);
ft.replace(R.id.content_frame, fr);
ft.commit();
error logs
E/AndroidRuntime(4507): FATAL EXCEPTION: main
E/AndroidRuntime(4507): java.lang.NullPointerException
E/AndroidRuntime(4507): at com.example.taskmanager.addtaskfragment.onCreateView(addtaskfragment.java:62)
E/AndroidRuntime(4507): at android.app.Fragment.performCreateView(Fragment.java:1695)
E/AndroidRuntime(4507): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885)
E/AndroidRuntime(4507): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
E/AndroidRuntime(4507): at android.app.BackStackRecord.run(BackStackRecord.java:682)
E/AndroidRuntime(4507): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
E/AndroidRuntime(4507): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:441)
E/AndroidRuntime(4507): at android.os.Handler.handleCallback(Handler.java:725)
E/AndroidRuntime(4507): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(4507): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(4507): at android.app.ActivityThread.main(ActivityThread.java:5041)
E/AndroidRuntime(4507): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(4507): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(4507): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(4507): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime(4507): at dalvik.system.NativeStart.main(Native Method)
Solución
Otros consejos
Your addcontacts
you attempt to invoke setOnClickListener()
on is null
.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow