問題タブ [android-listfragment]

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 投票する
10 に答える
73176 参照

android - ViewPager の一部として ListFragment のデータを更新する

Android で v4 互換の ViewPager を使用しています。私の FragmentActivity には、ViewPager のさまざまなページにさまざまな方法で表示される一連のデータがあります。これまでのところ、同じ ListFragment の 3 つのインスタンスしかありませんが、将来的には異なる ListFragment の 3 つのインスタンスを持つことになります。ViewPager は縦型の電話画面上にあり、リストは横に並んでいません。

ListFragment のボタンは、(FragmentActivity を介して) 別のページ全体のアクティビティを開始し、FragmentActivity がデータを返し、データを変更して保存し、ViewPager 内のすべてのビューを更新しようとします。私が立ち往生しているのはここです。

ご覧のとおり、最初に FragmentPagerAdapter 全体で notifyDataSetChanged を試みたところ、データが時々更新されることが示されましたが、IllegalStateException: Can't perform this action after onSaveInstanceState.

私の2番目の試みは、ListFragmentで更新関数を呼び出そうとしましたが、getItemのgetIdは0を返しました。私が試したドキュメントに従って

findFragmentById() または findFragmentByTag() を使用して FragmentManager から Fragment への参照を取得する

しかし、フラグメントのタグまたは ID がわかりません! ViewPager には android:id="@+id/viewpager" があり、ListFragment レイアウトの ListView には android:id="@android:id/list" がありますが、これらは役に立たないと思います。

a) ViewPager 全体を一度に安全に更新する (理想的には、ユーザーを以前のページに戻す) - ユーザーがビューの変更を確認しても問題ありません。または、できれば、b) 影響を受ける各 ListFragment で関数を呼び出して、ListView を手動で更新します。

どんな助けでもありがたく受け入れます!

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

android - Google の Fragments の例: 向きを変更するときにリスト内の選択された項目を維持する

ContentProviders、ローダー、カーソル、およびフラグメントを使用して、いくつかのサンプルに取り組んできました。Google のFragmentsの例を使用しています。これは v4 サポート ライブラリを使用していることに注意してください。

彼らの例は、向きを切り替えるときに選択したアイテムを保持し、表示されるフラグメントは保持された選択したアイテム用です。

彼らのコードでは、何がこの機能を提供しているのでしょうか? 私はこれを理解しようとしてきましたが、見つけることができません。

私が書いたものは、リストでアイテムが強調表示されたままになりますが、表示されるフラグメントは、選択したアイテムの詳細ではありません...それは最初のアイテムの詳細です。

ありがとう


解決策:mCurCheckPositionメソッドに=を設定するのを忘れてindexいましたshowDetails...笑。

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

android - ListFragment アイテムのテキストの色を変更できません

Cursor から作成された ListFragment があります。リストの背景を白に設定していますが、何らかの理由でテキストも白に設定されています。レイアウト xml の textColor 属性を変更してみましたが、効果がないようです。誰かが私が欠けているものを指摘できますか? ありがとう。

ListFragment から:

リスト項目のレイアウト:

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

android - カスタムのシンプルカーソルアダプターの作成

クリック時に行アイテムの色を簡単に変更できるように、非常に単純なカーソルカスタムカーソルアダプターを作成したいと思います。次のコードを使用する

このスレッドからコードを取得しましたhttps://stackoverflow.com/a/7649880/498449

単純なカーソルアダプターを使用してコードをonClickに配置しましたが、ListFragmentのデフォルトのリストはビューを再利用するため、スクロールすると複数のビューが強調表示されます。IRCについて話すと、カスタムカーソルアダプターを作成することが提案されました。ただし、これを行う方法と、上記のコードスニペットがどこに収まるかについてのベストプラクティスを見つけることができないようです。助けていただければ幸いです。

オンラインで見つけたコードでカーソルアダプタを更新しました。しかし、私には2つの問題があります。1.カーソルローダーを使用しているので、コンストラクターに渡す「カーソル」オブジェクトがありません。2.コンストラクターが非推奨になったことを示す警告がEclipseから表示されます。

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

android - ListView は、フィルタリング後に各項目を 2 回表示します

各行がメインアイテムとサブアイテムで構成されるリストがあります。ユーザーが検索編集テキストに入力すると、フィルターを使用してリストを更新しています。リスト内の項目を入力すると、入力したアルファベットに従って表示されますが、各項目は 2 回表示されます。以下は私のコードです:

誰が何が間違っているのかを知るのを手伝ってもらえますか?

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

android - ListFragment が画面の上半分だけを占めるようにするにはどうすればよいですか

画面の上半分のListFragmentに特定のディレクトリの内容をリストするファイルマネージャーアプリケーションを作成しようとしています(言うまでもなく、このリストはスクロール可能です)。ユーザーが特定のファイル/フォルダーをタップすると、それに関連付けられたメタデータは、ファイルタイプのサムネイル画像とともに、フラグメントのすぐ下に配置された FrameLayout に表示される必要があります。これが私のレイアウトです:

ScrollView タグなしで最初に「layout_weight」プロパティを使用しましたが、これらの重みプロパティはフラグメントによって尊重されず、リストは画面の下部まで拡張されます。

フラグメントを ScrollView タグで囲むと (私は知っています.. 良い考えではありません!)、リストのエントリは一度に 1 つしか表示されません。

必要に応じて、ListFragment を画面の上位 40% に配置し、その 40% の画面スペースにスクロール可能なリストを表示する方法はありますか?

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

android - Android ListView / ListFragment は単一行を強制します (Java コード)

このおそらく単純な問題/バグの解決策を見つけることができないようですので、ここにあります:

タイプ (android.R.layout.simple_list_item_checked) の ListFragment で、クリックすると他のフラグメントが読み込まれ、他の作業が行われます。

問題は、表示されていない ListFragment 内の文字列が、スクロールして表示に戻ると、明確な理由もなく次の行に「ラップ」されることです。以下の写真でよりよく説明されています:


写真1:通常状態

1-ノーマル


写真 2: リストを下にスクロール - すべて正常に動作しています (ランボルギーニは見えません)。 2-正常終了


写真 3 : しかし、ポルシェを選択して下にスクロールすると、「ムスタング」のテキストが壊れてしまいました

4 エラー 1


写真 4 : ランダムにクリックして上にスクロールすると、"Lamborghini" も同様です。

5 エラー 2


リストビューの作成に使用したコードは非常に簡単です。

CarModels.class の文字列

リストが更新されることを期待して、onListItemClick() の最後に notifyDataSetChanged() を呼び出してみましたが、問題は解決しません。これに対する可能な解決策はありますか?ありがとう!

PS: サポート ライブラリ v4 を使用して、Galaxy Tab 10.1、Honeycomb 3.1 で実行しています。このビルドのバグである可能性がありますか?

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

android - ListFragmentを更新します

を拡張するクラスを作成しましたListFragment。レイアウトにもボタンが1つあり、そのボタンをクリックすると、listvewのデータを削除しnotifyDataSetChanged、アダプターのを起動していますが、ListViewFragmentが取得されませんupdated

では、どうすればListFragmentを更新できますか?Android互換性サポートパッケージを使用しています

onActivityCreated内のコード

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

android - アクティビティが終了したらListFragmentを更新します

次のようなリストフラグメントとボタンを作成しました(左の画像)

[追加]ボタンをクリックすると、新しいアクティビティが開き、そのユーザー内で何かを書き込んで[完了]をクリックすると、アクティビティが終了してListFragmentに戻りますが、[完了]をクリックすると、ListFragmentを新しい値で更新するにはどうすればよいですか。つまり、notifyDataSetChangedをどこに書き込むことができますか。

ここに画像の説明を入力してください

注:[完了]をクリックすると、データはデータベースに保存され、ListFragmentが読み込まれると、その中のデータがフェッチされます。

私はAndroidサポート互換性ライブラリを使用しています

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

android - オブジェクトがnullではないという事実にもかかわらず、散発的なNullPointerException

このコード行で散発的な(約30回のうち1回)NullPointerExceptionが発生しています。そして、それがどこから来たのか、そしてそれをどのように防ぐのか、私にはわかりません。

mDbはSQliteDatabaseオブジェクトであり、Close関数はHelperクラスに実装されています。

私がしていること:AsyncTaskを使用してそのSQliteDatabaseで複雑なクエリを処理したいと思います。AsyncTaskのコードは次のとおりです。

そして、私はここでこのAsyncTaskを作成しています(ListFragmentから):

03-26 00:44:20.489:E / SqliteDatabaseCpp(6442):sqlite3_close(0x3b2278)が失敗しました:27 03-26 00:44:20.520:W / dalvikvm(6442):threadid = 12:スレッドがキャッチされない例外で終了します(グループ= 0x40a691f8)03-26 00:44:20.520:E / AndroidRuntime(6442):致命的な例外:AsyncTask#2
03-26 00:44:20.520:E / AndroidRuntime(6442):java.lang.RuntimeException:エラーが発生しましたdoInBackground()の実行中03-26 00:44:20.520:E / AndroidRuntime(6442):android.os.AsyncTask $ 3.done(AsyncTask.java:278)
03-26 00:44:20.520:E / AndroidRuntime( 6442):java.util.concurrent.FutureTask $ Sync.innerSetException(FutureTask.java:273)03-26 00:44:20.520:E / AndroidRuntime(6442):java.util.concurrent.FutureTask.setException(FutureTask .java:124)
03-26 00:44:20.520:E / AndroidRuntime(6442):at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:307)
03-26 00:44:20.520:E / AndroidRuntime(6442) :at java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-26 00:44:20.520:E / AndroidRuntime(6442):at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java: 208)
03-26 00:44:20.520:E / AndroidRuntime(6442):at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)03-26 00:44:20.520:E / AndroidRuntime(6442) :at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:569)03-26 00:44:20.520:E / AndroidRuntime(6442):at java.lang.Thread.run(Thread.java:856 )03-26 00:44:20.520:E / AndroidRuntime(6442):原因:java.lang.NullPointerException
03-26 00:44:20.520:E / AndroidRuntime(6442):android.database.sqlite.SQLiteDatabase.closeDatabase(SQLiteDatabase.java:1156)03-26 00:44:20.520:E / AndroidRuntime(6442):at android.database.sqlite.SQLiteDatabase.close(SQLiteDatabase.java:1105)03-26 00:44:20.520:E / AndroidRuntime(6442):at de.kialelem.trainer.DbHelper.close(DbHelper.java:676)03 -26 00:44:20.520:E / AndroidRuntime(6442):de.kialelem.trainer.ViewContentDatabaseListFragment $ processCursorTask.doInBackground(ViewContentDatabaseListFragment.java:48)03-26 00:44:20.520:E / AndroidRuntime(6442): at de.kialelem.trainer.ViewContentDatabaseListFragment $ processCursorTask.doInBackground(ViewContentDatabaseListFragment.java:1)03-26 00:44:20.520:E / AndroidRuntime(6442):at android.os.AsyncTask $ 2.call(AsyncTask.java:264 )03-2600:44:20。520:E / AndroidRuntime(6442):java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:305)で
03-26 00:44:20.520:E / AndroidRuntime(6442):...5詳細