Помогите с onCreateView
Button ссылается на фрагмент:
public class Fragment1 extends Fragment {
public Fragment1(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment1, container, false);
return rootView;
}
}
в XML fragment1:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="horizontal"
tools:context="com.example.sviter.myapplication.Fragment1">
<fragment
android:name="com.example.sviter.myapplication.TestListFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.33"
/>
<FrameLayout
android:id="@+id/number_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.67"/>
</LinearLayout>
В TestListFragment обычный список:
public class TestListFragment extends ListFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.number_list_array, R.layout.list_item);
setListAdapter(arrayAdapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
String value = (String) l.getAdapter().getItem(position);
ItemFragment fragment = ItemFragment.newInstance(value);
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.anim.fade_in,android.R.anim.fade_out);
ft.addToBackStack(value);
ft.replace(R.id.number_container,fragment);
ft.commit();
}
}
В стэктрэйсе вот что:
10-20 03:02:54.845 10703-10703/com.example.sviter.myapplication E/MainActivity﹕ Error in creating fragment
10-20 03:03:03.633 10703-10703/com.example.sviter.myapplication D/dalvikvm﹕ GC_FOR_ALLOC freed 225K, 3% free 9516K/9772K, paused 14ms, total 14ms
10-20 03:03:38.127 10703-10703/com.example.sviter.myapplication E/MainActivity﹕ Error in creating fragment
10-20 03:03:39.478 10703-10703/com.example.sviter.myapplication D/dalvikvm﹕ GC_FOR_ALLOC freed 298K, 4% free 9730K/10060K, paused 19ms, total 19ms
10-20 03:09:33.974 12220-12220/com.example.sviter.myapplication D/dalvikvm﹕ Late-enabling CheckJNI
10-20 03:09:34.124 12220-12220/com.example.sviter.myapplication I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:320>: EGL 1.4 QUALCOMM Build: I0404c4692afb8623f95c43aeb6d5e13ed4b30ddbDate: 11/06/13
10-20 03:09:34.154 12220-12220/com.example.sviter.myapplication D/OpenGLRenderer﹕ Enabling debug mode 0
10-20 03:09:36.236 12220-12220/com.example.sviter.myapplication D/AndroidRuntime﹕ Shutting down VM
10-20 03:09:36.236 12220-12220/com.example.sviter.myapplication W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4160cba8)
10-20 03:09:36.246 12220-12220/com.example.sviter.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.sviter.myapplication, PID: 12220
android.view.InflateException: Binary XML file line #10: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.example.sviter.myapplication.Fragment1.onCreateView(Fragment1.java:19)
at android.app.Fragment.performCreateView(Fragment.java:1700)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
at android.app.BackStackRecord.run(BackStackRecord.java:684)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Binary XML file line #10: Must specify unique android:id, android:tag, or have a parent with an id for com.example.sviter.myapplication.MainListPhotoshop
at android.app.Activity.onCreateView(Activity.java:4759)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.example.sviter.myapplication.Fragment1.onCreateView(Fragment1.java:19)
at android.app.Fragment.performCreateView(Fragment.java:1700)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
at android.app.BackStackRecord.run(BackStackRecord.java:684)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Короче, ругается на onCreateView, как я понимаю! Помогите.
Источник: Stack Overflow на русском