0

アプリで ListFragments を SherlockListFragment に変換する必要があります。

したがって、Sherlock を正しくセットアップしている間 (少なくとも、ホーム画面では SherlockActivity として機能します)、ListFragment の代わりに SherlockListFragment を使用する必要があります。

したがって、fragemnt を ListFragment から SherlockListFragment に変更するだけです。

    public class Select_F extends SherlockListFragment { //before it was ListFragment

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
  }
...

私は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" >

    <fragment                             <- this is line 7
        android:id="@+id/f"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.xxx.Screens.Select_F" >
    </fragment>

</LinearLayout>

次に、インフレート中にキャストエラーが発生します。

10-12 08:49:07.420: E/AndroidRuntime(15144): FATAL EXCEPTION: main
10-12 08:49:07.420: E/AndroidRuntime(15144): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxx/com.xxx.Select_screen}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.os.Handler.dispatchMessage(Handler.java:99)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.os.Looper.loop(Looper.java:137)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.ActivityThread.main(ActivityThread.java:4424)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at java.lang.reflect.Method.invokeNative(Native Method)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at java.lang.reflect.Method.invoke(Method.java:511)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at dalvik.system.NativeStart.main(Native Method)
10-12 08:49:07.420: E/AndroidRuntime(15144): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:255)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:119)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at com.actionbarsherlock.app.SherlockActivity.setContentView(SherlockActivity.java:229)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at com.xxx.xxx.Select_screen.onCreate(Select_screen.java:62)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.Activity.performCreate(Activity.java:4465)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
10-12 08:49:07.420: E/AndroidRuntime(15144):    ... 11 more

10-12 08:49:07.420: E/AndroidRuntime(15144): Caused by: java.lang.ClassCastException: com.xxx.Screens.Select_F cannot be cast to android.app.Fragment

10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.Fragment.instantiate(Fragment.java:574)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.Fragment.instantiate(Fragment.java:549)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.app.Activity.onCreateView(Activity.java:4235)
10-12 08:49:07.420: E/AndroidRuntime(15144):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
10-12 08:49:07.420: E/AndroidRuntime(15144):    ... 22 more

どういうわけか、xml ファイルはまだ SherlockListFragment ではなく Fragment を必要としていると思いますが、なぜでしょうか?

ここで何を見逃したのですか?

どうもありがとう!

4

1 に答える 1