In my Fragemt.java
there is something like this:
public class MainFragment extends Fragment implements View.OnClickListener {
private TextView mTitleTextView;
[...] irrelevant code cut out
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
[...] some other code
mTitleTextView = (TextView) rootView.findViewById(R.id.titleTextView);
mTitleTextView.setText("Text I Want to Set"); // Problem! App crashes on start if TextView isn't part of the fragment
[...] more irrelevant code
And this is working fine now. After the App always crashed
on loading and I was searching for hours. The problem was that the TextView (R.id.titleTextView)
was located in the XML
of the parent activity, not the xml assigned to the fragment.
Is there a way I could have changed the text of the parents TextView
from inside the fragments java code?
EDIT logcat info
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: FATAL EXCEPTION: main
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: Process: com.example.sebastian.recyclerlist, PID: 3259
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sebastian.recyclerlist/com.example.sebastian.recyclerlist.MainActivity}: android.view.InflateException: Binary XML file line #20: Error inflating class fragment
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.access$800(ActivityThread.java:151)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5254)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #20: Error inflating class fragment
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:257)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.example.sebastian.recyclerlist.MainActivity.onCreate(MainActivity.java:38)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.Activity.performCreate(Activity.java:5990)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.access$800(ActivityThread.java:151)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5254)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.example.sebastian.recyclerlist.MainActivity.setText(MainActivity.java:49)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.example.sebastian.recyclerlist.MainFragment.updateList(MainFragment.java:160)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.example.sebastian.recyclerlist.MainFragment.onCreateView(MainFragment.java:107)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1047)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1237)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1339)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2295)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:111)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:314)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:257)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.example.sebastian.recyclerlist.MainActivity.onCreate(MainActivity.java:38)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.Activity.performCreate(Activity.java:5990)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.access$800(ActivityThread.java:151)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5254)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
10-31 11:10:16.992 3259-3259/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)