私はプロフェッショナルな Android 4 アプリケーション開発に取り組んでいます。第 4 章では、フラグメントを使用するように To Do リスト アプリを変更しますが、Gingerbread デバイスでテストしようとしています。サポート ライブラリを使用して、下位バージョンのデバイスで Android v3 または v4 の機能を使用できるようにすることについて本に言及されていますが、あまり詳しく説明されていません。
特に次のような問題が発生しています。
// Get references to the Fragments
android.app.FragmentManager fm = getFragmentManager();
ToDoListFragment todoListFragment = (ToDoListFragment) fm.findFragmentById( R.id.ToDoListFragment );
上部にこれらのインポートがあります: import android.support.v4.app.FragmentManager; android.support.v4.app.ListFragment をインポートします。
しかし、リントは「ToDoListFragment todoListFragment = (ToDoListFragment)」行で警告します: Fragment から ToDoListFragment にキャストできません
私の ToDoListFragment クラスには、次のものがあります。
import android.support.v4.app.ListFragment;
public class ToDoListFragment extends ListFragment {
}
これは、サポート ライブラリを使用するように変更されたことを除いて、ほとんど本からそのままです。
v4 サポート ライブラリを使用してこのコードを正しく動作させる方法がよくわかりません。これが十分な情報でない場合は、事前にお詫び申し上げます。私はまだこれを学んでおり、Java よりも C/C++ に精通しています。サポート ライブラリを使用しない場合、コードは正常にビルドされ、Ice Cream Sandwich デバイスで実行されますが、下位レベルのデバイスでも動作するようにしたいと考えています。