問題タブ [android-support-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
16629 参照

android - Android互換パッケージでフラグメントを使用できません

XavierDucrohetの「FragmentsforAll」で、Android SDK Tech Leadは、GoogleがSDKManagerによるAndroid互換性パッケージをリリースすると述べています。

インストールしましたが、どうすれば使えますか?

Android互換パッケージをプロジェクトに統合するにはどうすればよいですか?

0 投票する
1 に答える
3163 参照

android - AndroidListFragmentカーソル管理

AndroidアプリにListFragmentとLoaderClassを使用したいと思います。(ハニカムレベルのSDK、ただしGoogleリリースの比較可能性パッケージ)

Fragmentでは、FragmemtライフサイクルでカーソルAPIを管理していますか?

アクティビティには「startManagingCursor(Cursorc)」があります

また

フラグメントは、そのライフサイクルでカーソルを自動的に管理しますか?

0 投票する
1 に答える
8805 参照

android - Androidの背景と永続性のメニューバーを設定する-古いバージョンで属性を使用するとクラッシュが発生します-テーマ/パターンのアプローチはありますか?

Android 3.0では、「チェック済み」の概念は「アクティブ化された」背景を使用してレンダリングできます。これにより、リストフラグメントをタップしたときに表示される永続的なバーが表示され、リストの右側にフラグメントのコンテキストが提供されます(たとえば、Gmailでフォルダをタップすると、そのフォルダが強調表示され、別のリストフラグメントが開いて、そのフォルダ内の会話が表示されます。 )。

たとえば、フラグメントサンプルは次のようなものを示しています。

そのリソース(android.R.layout.simple_list_item_activated_1)はAndroid3.0の新機能です。それを「アクティブ化」するのは次のとおりです。

この属性値はAndroid3.0の新機能であり、以前のバージョンのAndroidで使用しようとすると、クラッシュする可能性があります。3.0 /大/風景の組み合わせの背景をこの魔法の値に設定し、それ以外の場合はスキップします。

これは、2つの別々のバージョンのレイアウトを用意することで実現できます。1つは-v11リソースセットに、もう1つは通常のリソースセットにあります。ただし、レイアウトの大部分は同じであり、この1つの属性のみが含まれるかスキップされるため、これは私が望むよりも少しDRYが少なくなります。

ドローアブルリソースエイリアスを使用しようと試みたので、android:backgroundはエイリアスを参照でき、エイリアスは区別を処理し-v11ますが、<bitmap>ドローアブルは好きではないようですandroid:src="@null"

この問題にはスタイルとテーマのアプローチがあると思いますが、それらに頭を完全に巻き付けたことがないため(Androidの知識のギャップの1つ)、どうすればよいか完全にはわかりません。

誰かが3.0で「アクティブ化」を使用し、3.0より前ではそれをスキップするためのパターンを、個別のレイアウトを超えて考え出したことがありますか?

ありがとう!

0 投票する
11 に答える
23589 参照

android - マルチフラグメントアクティビティで onContextItemSelected を処理するには?

私は現在、「Android v4 の互換性ライブラリ」を使用するようにアプリケーションを適応させて、Android 1.6 ユーザーにもフラグメントを使用する利点を提供しようとしています。

コンテキスト メニューの実装は難しいようです。

  • アプリケーションの主なアクティビティは、FragmentActivity クラスを拡張することです。
  • フラグメントはすべて Fragment クラスを拡張する 1 つのクラスに基づいています。
  • フラグメント クラスは 、そのonCreateView()メソッドでregisterForContextMenu()を呼び出しており、メソッド onCreateContextMenu()およびonContextItemSelected()をオーバーライドしています。

onCreateContextMenu()の場合、これはかなりうまく機能します。コンテキスト メニューはリソース ファイルから拡張され、選択された項目に基づいてわずかに変更されます (フラグメントが ListFragment でなくても、listView に基づいています)。

この問題は、コンテキスト メニュー エントリが選択されたときに発生します。 onContextItemSelected()は、最初に追加されたフラグメントから始まる、現在存在するすべてのフラグメントに対して呼び出されます。

私の場合、フラグメントはフォルダー構造のコンテンツを表示するために使用されます。サブフォルダ フラグメントのコンテキスト メニューが開かれ、メニュー項目が選択されると、最初に上位レベルでonContextItemSelected()が呼び出されます (現時点で許可されている/表示されているフラグメントの数によって異なります)。

現在、onCreateContextMenu()を呼び出す最後のフラグメントのタグを保持するアクティビティ レベルのフィールドによる回避策を使用しています。このようにして、格納されたタグが getTag() と同じでない場合に、onContextItemSelected()の先頭で「return super.onContextItemSelected(item)」を呼び出すことができます。しかし、このアプローチは私には少し汚いように見えます。

すべてのフラグメントで onContextItemSelected() が呼び出されるのはなぜですか? onCreateContextMenu()を呼び出していたものだけではありませんか?

これを処理する最もエレガントな方法は何ですか?

0 投票する
1 に答える
1917 参照

android - Honeycomb互換性パッケージを使用したIllegalArgumentException

互換性のある.jarをプロジェクト(フラグメントなどを使用するもの)に追加しましたが、アプリをビルドするたびにEclipseが以下のエラーをスローします。.jarlibs/フォルダーにコピーして追加し、 [プロジェクトのプロパティ]ダイアログで[ Jarの追加... ]を使用しました。私はこれを正しくやっていますか?

0 投票する
3 に答える
5226 参照

android - フラグメントAndroidで再利用を表示

ビューの状態をフラグメントに保存しようとしていますが、アクティビティがリークしているのではないかと心配しています。これが私がしていることです:

すべてのビューがコンテキストを保持していることを知っていて、それがアクティビティコンテキストなのか、インフレータからインフレートされた場合のアプリケーションコンテキストなのかわからないため、心配しています。おそらく、インフレータを使用するよりも、getActivity()。getApplication()を使用して、ビューを実用的に作成し、その属性を設定する方がよいでしょう。これについてのフィードバックをいただければ幸いです。

ありがとう!

編集:このコードはうまく機能しますが、アクティビティリークを確認しました:*(

0 投票する
3 に答える
13367 参照

android - FragmentActivity は ActivityInstrumentationTestCase2 経由でテストできません

最近リリースされた Fragment サポート API を利用する Android アプリケーションに対して Android 単体テストを実行する際に問題があります。FragmentActivity に対してテストを実行すると、次のエラーがログに表示され、クラスの読み込みに失敗します。同一のクラスに対して実行されますが、Activity から派生したクラスに対して実行すると、テストは正常に機能します。どちらのクラスもアプリとして正しく動作します! つまり、単純に呼び出されると、レイアウトと機能の両方が正しく表示されます。サポート jar はビルド パスの一部であり、プロジェクトに含まれています。

私が抱えている問題は、フラグメントを利用する (および pre3.0 android をサポートする) 唯一の方法は FragmentActivity を利用することですが、それが自動テストを除外する場合、このライブラリは何が良いかということです。

問題を示すために作成したコードを次に示します。テスト ケースは、テスト対象のクラスをインスタンス化しようとするだけです。

私が作成した 2 つのクラスは次のとおりで、fragment_layout は空の LinearLayout です。

0 投票する
1 に答える
794 参照

android - ローダー フレームワークを使用した MapActivity

ハニカム 3.0 より前の互換性ライブラリ (したがって)で a MapView(したがって) を使用するための解決策はありますか?MapActivityLoaderFragmentActivity

(余談ですが、マップを使用するために拡張する必要がある理由がよくわかりMapActivityませんでした。一般的なアクティビティを作成する場合、これはひどく制限されます。インターフェイスの方が適切ではないでしょうか?)

0 投票する
2 に答える
6319 参照

android - 互換性ライブラリを使用した ListFragment のサブクラスでの ClassCastException

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

突き止められないというエラーが表示されます。ListFragment と標準 Fragment を持つ Activity があります。これは、Android Dev Guide の Developers セクションで提供されている例とまったく同じです。

ListFragment サブクラス (関数のオーバーライドなし)

主な活動

MainActivity の XML レイアウト

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

ERROR/AndroidRuntime: 原因: java.lang.ClassCastException: org.example.ItemListFragment は android.app.Fragment にキャストできません

0 投票する
3 に答える
13393 参照

android - 互換パッケージ用の LoaderManager を使用した ExpandableListFragment

ExpandableListActivity を Honeycomb と互換性を持たせたいです。互換性パッケージに ExpandableListFragment がないのはなぜでしょうか。

ExpandableListView を通常の Fragment クラスで動作させる方法はありますか? LoaderManager でカーソルをロードするにはどうすればよいですか?