У меня есть одно действие, и я хочу передать данные из действия во фрагмент. у меня есть основной вид деятельности, который содержит два фрагмента и одну кнопку, и я просто нажимаю на кнопку, чем мои фиктивные данные, отображаемые на фрагменте, могу ли я попробовать много раз, но каждый раз сталкиваюсь с одной и той же ошибкой "Строка двоичного файла XML №9:
Ошибка надувания фрагмента класса "помогите пожалуйста
Исключение:
Процесс: com.sytechnology.fragmentdata, PID: 12907
java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.sytechnology.fragmentdata / com.sytechnology.fragmentdata.MainActivity}:
android.view.InflateException: строка двоичного файла XML №9: ошибка
раздувать фрагмент класса
на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2325)
на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387)
на android.app.ActivityThread.access $ 800 (ActivityThread.java:151)
на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1303)
на android.os.Handler.dispatchMessage (Handler.java:102)
на android.os.Looper.loop (Looper.java:135)
на android.app.ActivityThread.main (ActivityThread.java:5254)
в java.lang.reflect.Method.invoke (родной метод)
в java.lang.reflect.Method.invoke (Method.java:372)
на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:698)
Вызвано: android.view.InflateException: строка двоичного XML-файла # 9: ошибка надувания фрагмента класса
на android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:763)
на android.view.LayoutInflater.rInflate (LayoutInflater.java:806)
на android.view.LayoutInflater.inflate (LayoutInflater.java:504)
на android.view.LayoutInflater.inflate (LayoutInflater.java:414)
на android.view.LayoutInflater.inflate (LayoutInflater.java:365)
на android.support.v7.app.AppCompatDelegateImpl.setContentView (AppCompatDelegateImpl.java:469)
на android.support.v7.app.AppCompatActivity.setContentView (AppCompatActivity.java:140)
в com.sytechnology.fragmentdata.MainActivity.onCreate (MainActivity.java:15)
на android.app.Activity.performCreate (Activity.java:5990)
на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1106)
на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2278)
на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387)
на android.app.ActivityThread.access $ 800 (ActivityThread.java:151)
на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1303)
на android.os.Handler.dispatchMessage (Handler.java:102)
на android.os.Looper.loop (Looper.java:135)
на android.app.ActivityThread.main (ActivityThread.java:5254)
в java.lang.reflect.Method.invoke (родной метод)
в java.lang.reflect.Method.invoke (Method.java:372)
на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:698)
Вызывается: java.lang.NullPointerException: попытка вызвать виртуальный метод 'java.lang.String
android.os.Bundle.getString (java.lang.String) 'для нулевого объекта
ссылка
в com.sytechnology.fragmentdata.FragementOne.onCreateView (FragementOne.java:32)
на android.support.v4.app.Fragment.performCreateView (Fragment.java:2439)
на android.support.v4.app.FragmentManagerImpl.ensureInflatedFragmentView (FragmentManager.java:1689)
на android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1431)
на android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1684)на android.support.v4.app.FragmentManagerImpl.addFragment (FragmentManager.java:1930) на android.support.v4.app.FragmentManagerImpl.onCreateView (FragmentManager.java:3745) на android.support.v4.app.ler.reraCateContContment(FragmentController.java:120) в android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView (FragmentActivity.java:405)
этот код является операцией передачи данных фрагменту
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();
}
});
это фрагмент кода, где я получаю данные из действия
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>
Вот моя основная деятельность 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>