質問

これは、3.0以前のデバイスに互換性ライブラリを使用する場合にのみ発生します

固定できないエラーが発生しています。私はリストフラグと標準のフラグメントを備えたアクティビティを持っています。これは、Android Dev Guideの開発者セクションで提供されている例のようです。

ListFragment Subclass(オーバーライドされた関数はありません)

public class ItemListFragment extends ListFragment

主な活動

public class ItemViewerActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.item_viewer);
    }
}

MainActivityのXMLレイアウト

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal">
  <fragment class="org.example.ItemListFragment"
    android:id="@+id/item_list_fragment"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1" />
  <FrameLayout
    android:id="@+id/item_info_frame"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1" />
</LinearLayout>

logcatからのエラーメッセージ

エラー/androidruntime:原因:java.lang.classcastexception:org.example.itemlistfragmentはandroid.app.fragmentにキャストできません

役に立ちましたか?

解決

いくつかの深刻なグーグルの後、私は素敵な小さな情報を指摘した記事を見つけました。互換性ライブラリを使用する場合、フラグメントを使用するアクティビティは、フラグメン性の活性を拡張する必要があります。私がそれをしたら、エラーは再び現れませんでした。

他のヒント

私にとって問題は、マニフェストを変えるのを忘れていたことでした。チュートリアルの提案に続いて、アクティビティをフラグメントに変換し、それを呼び出すためにシェルアクティビティを作成しました。私のマニフェストは、クラスキャストの例外につながるフラグメントクラスをまだ指していました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top