アプリで 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 を必要としていると思いますが、なぜでしょうか?
ここで何を見逃したのですか?
どうもありがとう!