互換性ライブラリを使用して既存のアプリケーションをFragments APIに変換しています。 Activityを拡張するクラスを更新して、FragmentActivityを使用するはずだと読んだことがあります。ほとんどの場合、これは問題ありませんが、ListActivityやMapActivityを拡張するクラスはどうでしょうか?これを処理するのに好ましい方法は何ですか?私は、ListFragmentActivityやそれらの行に沿ったものがあることを期待していましたが、私はそれを見ません。互換ライブラリを使用してFragmentsに変換する際のListActivity/MapActivityについて
答えて
ListFragmentがあります:MapActivityについてはhttp://developer.android.com/reference/android/app/ListFragment.html
は、残念ながらあなたはそれを使用し続ける必要があります。そのためのフラグメントAPIはありません。
少なくともListActivityのためのあなたはFragmentActivity(まだOnItemCLickListenerを実装する)に変更し、置き換えることができます。
LV = getListView()=(リストビュー)をのlvするfindViewById(R.id.your_list_view_id)を
そして
setListAdapter(favAdapter)lv.setAdapter(アダプタ)に
ListViewのIDが@ android:id/list'、これを行うことができます: 'ListView lv =(ListView)findViewById(android.R.id.list);'。また、 'onListItemClick()'を 'lv.setOnItemClickListener(新しいListView.OnItemClickListener(){}'に置き換えたいと思います。 – bmaupin
私は@bmaupinの答えにこれをコメントしましたが、 "(ListView)findViewById(R.id.your_list_view_id)"と "getListView()。setAdapter(adapter)"を使ってそれらの世話をするか、それともうまくいかないのでしょうか? – ankushg
@Ankushも機能しますが、あなたはgetListView()を呼び出すたびにビュー階層を検索しますが、効率はあまり高くありません。 –
これは、断片のAPIにListActivityを変換するとき、私は何をすべきかです:
(あなたは空のビューを設定する必要があります
lv.setOnItemClickListener(new ListView.OnItemClickListener() {...
に置き換える、あなたは
onListItemClick()
を上書きした場合はlv.setAdapter(adapter);
で
setListAdapter(adapter);
を交換しlv = (ListView) findViewById(android.R.id.list);
で
私はCursorLoaderを使用している場合はlv = getListView();
を交換して表示されていること結果がない場合は手動):lv.setEmptyView(findViewById(android.R.id.empty));
、私は通常onLoadFinished()でこれを置く:
// if there are no results if (data.getCount() == 0) { // let the user know lv.setEmptyView(findViewById(android.R.id.empty)); } else { // otherwise clear it, so it won't flash in between cursor loads lv.setEmptyView(null); }
いえばcursor loadersで、それはその時点
によってまだない場合、私もCursorLoaderを使用するための活動を変換します
ListActivity
をFragmentActivity
に変換することは可能です。
- は
FragmentActivity
代わりのListActivity
setContentView(R.layout.your_activity);
- また、明示的にちょうど
ListView
にあなたを取得するために、あなたの活動のonCreate
を変更する、あなたの活動のonCreate
でandroid:id="@+id/your_activity_list_view"
- と空
ListView
とres/layout/your_activity.xml
の作成を拡張します膨らんだ
。
ListView lv = (ListView) findViewById(R.id.your_activity_list_view);
lv.setAdapter(adapter);
lv.setOnItemClickListener(this);
- 1. Android Fragments互換ライブラリによるさまざまな例外
- 2. androidの互換ライブラリを使用する
- 3. jspdfライブラリを使用してhtmlファイルをpdfに変換する
- 4. 互換性ライブラリを使用してICSにオプションメニューが表示されない
- 5. FFMPEGを使用して最大のブラウザ互換性を持つMP4に変換する
- 6. java asposeライブラリを使用してhtmlからpptに変換
- 7. javascriptを使用してIE9を互換モードに強制する
- 8. pdf/pdfをiTextライブラリを使用して変換する
- 9. iTextを使用してPDFでイメージのサイズを変更する:互換性のない色変換
- 10. いくつかのライブラリを使用してpdfのイタリックフォントを通常のフォントに変換するには?
- 11. プロミスとQライブラリを使用して変換する方法
- 12. PHPでImagickライブラリを使用してpdfファイルをイメージに変換するには?
- 13. 変数PSRと互換性のないオブジェクトを使用していますか?
- 14. XSLTを使用してXMLをJSONに変換する際の問題
- 15. pythonを使用してビデオをピクチャに変換する際の問題2.7
- 16. JSONを使用してPHPの配列に変換する際の問題
- 17. キャストを使用して変換コントロールを変換しない
- 18. Iconvを使用してUTF-8からlatin1に変換する際のエラー
- 19. Gsonを使用してJSONからPOJOに変換する際の問題
- 20. ReportViewerを使用せずに.rptを.pdfに変換して変換する
- 21. Android互換性ライブラリのエラー
- 22. HoneycombのAndroid互換性ライブラリ
- 23. Java標準ライブラリを使用してHTML文字をテキストに変換する
- 24. タイピングモジュールを使用する際にタイプの互換性をチェックする方法は?
- 25. 外部ライブラリを使ってMakeをCMakeに変換する
- 26. phpMyAdmin MYSQL40互換モードを使用しているエラー#1064
- 27. WAVファイルを周波数ドメインに変換して使用する方法FFTライブラリ
- 28. iOS 2D変換:使用するライブラリ
- 29. CライブラリをC++ライブラリに変換する
- 30. ユニコードを実際のキャラクタCに変換しています。
ListFragmentはFragmentActivityではないため、FragmentActivityが必要な継承構造に問題があります。私がこの作業を進めるにつれ、クラスの種類やGoogleの主張どおりのマイナーな調整だけでなく、全体の書き換えが必要になるようです。 – CACuzcatlan
@CACuzcatlan: "Google"が必要とするのは「クラスの種類とマイナーな調整を更新するだけです」というリンクを引用することができます。つまり、 'ListActivity'を' ListFragment'に変換することは、ほとんどのactivity-> fragmentマイグレーションIMHOよりも単純で簡単です。 – CommonsWare
申し訳ありませんが、私は誇張しています。私はそれが私の印象だったと言わなければなりません。 – CACuzcatlan