i have one activity and i want to pass data from activity to fragment. i have main activity which contain two fragment and one button i just click to button than my dummy data show on fragment can i possible i am many time to try but every time face same error "Binary XML file line #9: Error inflating class fragment" please help me
Exception:
Process: com.sytechnology.fragmentdata, PID: 12907 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sytechnology.fragmentdata/com.sytechnology.fragmentdata.MainActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class fragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.sytechnology.fragmentdata.MainActivity.onCreate(MainActivity.java:15) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference at com.sytechnology.fragmentdata.FragementOne.onCreateView(FragementOne.java:32) at android.support.v4.app.Fragment.performCreateView(Fragment.java:2439) at android.support.v4.app.FragmentManagerImpl.ensureInflatedFragmentView(FragmentManager.java:1689) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1431) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1684) at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1930) at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3745) at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120) at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:405)
this code is data pass activity to fragment
button =findViewById(R.id.mainButtonId);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle bundle= new Bundle();
bundle.putString("demo","dummy data");
FragementOne fragementOne= new FragementOne();
fragementOne.setArguments(bundle);
//getSupportFragmentManager().beginTransaction().replace(R.id.mainFragme ntOn,fragementOne).commit();
}
});
this is fragment code where i receive data from activity
TextView textView;
public FragementOne()
{
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView=inflater.inflate(R.layout.fragment_one,container,false);
textView=(TextView) rootView.findViewById(R.id.fregmentOneText);
String name=this.getArguments().getString("demo");
textView.setText(name);
return rootView;
"Here is My XML of Fragment"
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@color/colorAccent"
android:id="@+id/mainFragmentOn"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fregmentOneText"
android:text="fregmanetOn"
/>
</FrameLayout>
Here is My main Activity XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
tools:context=".MainActivity">
<fragment
android:layout_width="0px"
android:layout_height="300dp"
android:layout_weight="1"
android:name="com.sytechnology.fragmentdata.FragementOne"
android:id="@+id/fragment1"
/>
<fragment
android:layout_width="0px"
android:layout_height="300dp"
android:id="@+id/fragment2"
android:name="com.sytechnology.fragmentdata.FragmentTwo"
android:layout_weight="1"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mainButtonId"
android:text="click"
android:background="@color/colorAccent"
/>
</LinearLayout>