我只是想对碎片一看,我得到了一些probs与愚蠢的东西... 还有就是我SkippersActivity.java:
公共类SkippersActivity延伸活动{
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.skippers_fragment);
}
}
和我skippers_fragment.xml:
< XML版本=1.0编码=UTF-8&GT?;
<片段
的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:名称=com.arkezis.globedroid.SkippersFragment
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:ID =@ + ID / skippers_fragment>
&所述; /片断>
和有我SkippersFragment.xml:
公共类SkippersFragment扩展片段{
公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,捆绑savedInstanceState)
{
查看MAINVIEW = inflater.inflate(R.layout.skippers,集装箱,假);
返回MAINVIEW;
}
}
我的skippers.xml:
< XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直>
< ListView的机器人:ID =@ + ID / list_skippers_all
机器人:layout_width =match_parent
机器人:layout_height =match_parent>
< / ListView控件>
< / LinearLayout中>
为什么我有:
04-30 13:45:16.355:E / AndroidRuntime(30077):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.arkezis.globedroid / com.arkezis。 globedroid.SkippersActivity}:android.view.InflateException:二进制XML文件中的行#2:错误充气类片段
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.access $ 600(ActivityThread.java:123)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1147)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.os.Handler.dispatchMessage(Handler.java:99)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.os.Looper.loop(Looper.java:137)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.main(ActivityThread.java:4424)
04-30 13:45:16.355:E / AndroidRuntime(30077):在java.lang.reflect.Method.invokeNative(本机方法)
04-30 13:45:16.355:E / AndroidRuntime(30077):在java.lang.reflect.Method.invoke(Method.java:511)
04-30 13:45:16.355:E / AndroidRuntime(30077):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)
04-30 13:45:16.355:E / AndroidRuntime(30077):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-30 13:45:16.355:E / AndroidRuntime(30077):在dalvik.system.NativeStart.main(本机方法)
04-30 13:45:16.355:E / AndroidRuntime(30077):android.view.InflateException:二进制XML文件中的行#2:错误充气类片段产生的原因
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.inflate(LayoutInflater.java:466)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-30 13:45:16.355:E / AndroidRuntime(30077):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Activity.setContentView(Activity.java:1835)
04-30 13:45:16.355:E / AndroidRuntime(30077):在com.arkezis.globedroid.SkippersActivity.onCreate(SkippersActivity.java:19)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Activity.performCreate(Activity.java:4465)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
04-30 13:45:16.355:E / AndroidRuntime(30077):11 ...更多
04-30 13:45:16.355:E / AndroidRuntime(30077):由:java.lang.ClassCastException:com.arkezis.globedroid.SkippersFragment不能转换为android.app.Fragment
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Fragment.instantiate(Fragment.java:574)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Fragment.instantiate(Fragment.java:549)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Activity.onCreateView(Activity.java:4235)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
解决方案
如果我猜的话, SkippersFragment
正在扩大 android.support.v4 .app.Fragment
。然而, SkippersActivity
是没有的延伸 android.support.v4.app.FragmentActivity
。因此, SkippersActivity
正在尝试使用本机API级别11片段。
I'm just trying to have a look on Fragment and I got some probs with stupid stuff... There is my SkippersActivity.java :
public class SkippersActivity extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.skippers_fragment);
}
}
And my skippers_fragment.xml :
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.arkezis.globedroid.SkippersFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/skippers_fragment">
</fragment>
And there is my SkippersFragment.xml :
public class SkippersFragment extends Fragment{
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View mainView = inflater.inflate(R.layout.skippers, container, false);
return mainView;
}
}
My skippers.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView android:id="@+id/list_skippers_all"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
Why do I got :
04-30 13:45:16.355: E/AndroidRuntime(30077): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.arkezis.globedroid/com.arkezis.globedroid.SkippersActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.ActivityThread.access$600(ActivityThread.java:123)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.os.Handler.dispatchMessage(Handler.java:99)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.os.Looper.loop(Looper.java:137)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.ActivityThread.main(ActivityThread.java:4424)
04-30 13:45:16.355: E/AndroidRuntime(30077): at java.lang.reflect.Method.invokeNative(Native Method)
04-30 13:45:16.355: E/AndroidRuntime(30077): at java.lang.reflect.Method.invoke(Method.java:511)
04-30 13:45:16.355: E/AndroidRuntime(30077): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-30 13:45:16.355: E/AndroidRuntime(30077): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-30 13:45:16.355: E/AndroidRuntime(30077): at dalvik.system.NativeStart.main(Native Method)
04-30 13:45:16.355: E/AndroidRuntime(30077): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-30 13:45:16.355: E/AndroidRuntime(30077): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.Activity.setContentView(Activity.java:1835)
04-30 13:45:16.355: E/AndroidRuntime(30077): at com.arkezis.globedroid.SkippersActivity.onCreate(SkippersActivity.java:19)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.Activity.performCreate(Activity.java:4465)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
04-30 13:45:16.355: E/AndroidRuntime(30077): ... 11 more
04-30 13:45:16.355: E/AndroidRuntime(30077): Caused by: java.lang.ClassCastException: com.arkezis.globedroid.SkippersFragment cannot be cast to android.app.Fragment
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.Fragment.instantiate(Fragment.java:574)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.Fragment.instantiate(Fragment.java:549)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.app.Activity.onCreateView(Activity.java:4235)
04-30 13:45:16.355: E/AndroidRuntime(30077): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
解决方案
If I had to guess, SkippersFragment
is extending android.support.v4.app.Fragment
. However, SkippersActivity
is not extending android.support.v4.app.FragmentActivity
. So SkippersActivity
is trying to use native API Level 11 fragments.