問題タブ [android-adapter]
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.
android - Android のより複雑な ListView チュートリアル
Android のコーディングを始めたばかりですが、リストビューを理解するのに苦労しています。
たとえば、最初のリストビューのアイテムをクリックしたときに別のリストビューを表示する方法を理解する必要があります。また、リストビューのアイテムをクリックしたときにテキストビューを表示する方法。
誰かが良いチュートリアルや例を知っているなら、私に知らせてください.
どうもありがとう
android - Android ListViewアダプターnotifyDataSetInvalidated()とnotifyDataSetChanged()
違いはなんですか?Androidのドキュメントには、notifyDataSetInvalidated()の説明がありません。その関数を呼び出して登録済みのすべてのリスナーに通知するのではないかと思っていましたが、notifyDataSetChanged()を使用して通知しないのですか?
android - アンドロイドのタブビュー
3 つのタブがあり、各タブのコンテンツはビュー (この場合は Gridview) です。グリッドを設定するイメージ アダプター クラスを作成しました。を使用してイメージアダプターを呼び出します
ただし、各ビューには異なる方法で入力する必要があります。どのビューがイメージ アダプター クラスを呼び出したかを知るにはどうすればよいですか? 呼び出しとともに引数を渡す方法はありますか、それとも別の方法で行うことができますか?
android - notifydataSetChanged で ListView を更新するには、runOnUiThread を使用する必要がありますか?
だから私は、独自のカスタム arrayadapter を使用するこの ListView を持っています。データベースなどからデータを取得するなど、うまく機能しますが、設定後は更新されません。結果のために何かを行うこのアクティビティがあり、戻ってきたらこれを呼び出します:
問題は、notifyDataSetChanged()
実際には何もしないということです。さらに調査しましたが、UI スレッドで呼び出す必要があると思いますか? しかし、私は FragmentActivity にいますが、これを行う方法がわかりませんか? 実行可能なスレッドを作成して、そこから呼び出す必要があるかもしれません。スレッドをあまり使用していないので、よくわかりませんが、これを行う方法に関する良い (簡潔で完全な) 例はありますか? それともこれも私の問題ですか?
(注: 私は ORM Lite に切り替えました。この前に、この特定の場所にカーソルでSimpleCursorAdapter
a を呼び出した後に更新できる a があり、次に.requery
notifyDataSetChanged()
編集:
さて、いくつかのコメントの後、AsyncTask ルートを調査しました...:
そして私の中でonActivityCreated
:
そして私のonActivityResult(...)
:
まだリストの更新はありません...
だから私は自分が何をしているのかわからないことを示しました:)
java - アレイアダプタNotifyDataSetChanged()NullPointerException Android
リストにマップを追加してから、アレイアダプターを更新しています。これは以前は完全に機能していましたが、2つの異なるメソッドからaddItem()メソッドを使用しているため、NullPointerがスローされます。私のコードが私が言っていることをクリアすることを願っています:
明確にするために、createNewEditedEntry()とonActivityResult()が同時に呼び出されたり、衝突したりすることはありません。それらは2つの完全に異なる出来事です。OnActivityResultだけで機能していましたが、CreateNewEditedEntry()を使用すると、機能しなくなりました。また、インテントからフェッチした文字列がnullでないことを確認しました。
android - Androidの一般的な列データでリストアイテムを分離しますか?
私はAndroidに少し慣れていませんが、私が知る限り、データベースをカスタム行を使用してリストビューにバインドする場合は、CursorAdapterをオーバーライドする必要があります。ただし、リストビューに実装したい機能があるため、作業を開始できません。日付の昇順でリストビューを表示するだけでなく、2つの別々のセクションを作成したいのです。私のリストビューでは、両方とも日付に従ってソートされていますが、同じカーソルを使用しています(それが可能な場合でも)。
私のスキーマの簡略化されたバージョンは次のようになります:_ID、NAME、DATE、TRUTH_VALUE
私のデフォルトのビューでは、結果のカーソルの行を日付で並べ替えますが、「TRUTH_VALUE」に従って区切られたカーソルからセクションを「フィルタリング」または作成することもできます。つまり、リストのセクション1にアイテムを含めることができます。 「TRUTH_VALUE」の任意の値が0で、日付に従ってソートされ、セクション2には、TRUTH_VALUE列が任意の1であり、日付に従ってソートされている項目が含まれています。
2つのカーソルを受け入れることができる(フィルター処理された単一のListViewにされる)アダプターなどを見つけることができないようです。また、カスタムアダプターのコンストラクターに追加のパラメーターを配置することも検討していません(インスタンス化など)。私のアダプターは、パラメーターに値を含めます。これは、アダプターがカーソルのデータをバインドする方法を変更できるかどうかを判断するのに役立ちます。これは不可能だと思いますが、パフォーマンスの問題につながることは言うまでもありません。
前もって感謝します!
android - フラグメントでアダプタを設定する方法
コールバックがカスタムを返すaFragment
を持っています。ビューには、アダプタを設定したいGridViewが含まれています。Fragmentsの使用に切り替える前は、単にby Idを見つけて、を設定していました。私が現在理解していない理由のために、私が私のでIdによってそれを見つけようとすると、はnullになります。onCreateView()
View
GridView
adapter
GridView
FragmentsActivity
fragment
そこで、アダプター自体を設定したいと思います。でこれを行う必要があると思いますが、onCreateViewによって返されるビュー内に含まれているをどのonActivityCreated
ように設定するかわかりません。つまり、ビューを設定するために返されるビューを取得するにはどうすればよいですか? adapter
GridView
onCreateView
Adapter
編集-私はちょうど気づきました、私はおそらくただ中に見つけてそこGridView
にonActivityCreated
設定することができました、そうではadapter
ありませんか?
android - 垂直ギャラリーのようなListViewの動作を作成します
ListViewを垂直ギャラリーのように表示する次のコードがあります
ただし、シミュレートする必要のある動作もいくつかあります。
- ビューを一元化する:新しいビューが表示されたら、ディスプレイ上で一元化する必要があります。
onItemSelected
イベントの発生:現在のビューにイベントをディスパッチし、touchEventでcurrentViewがfalseを返した場合にのみスクロールさせる原因が必要です。ItemSelectedListView
イベントは必要ありません。これは似たようなものです。- また、もう1つの質問は、ユーザーが上にスワイプした場合、1つのビューのみを翻訳する必要があることです(ジェスチャの速度に応じて複数のビューを翻訳する必要はありません)。
それを可能にするコンポーネントは、有用な答えにもなります。
編集:実際、私はこのソリューションでこの問題を解決しました。アニメーションを使用してビューをスワイプしますが、この質問は開いたままにしておきます。
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 を手動で更新します。
どんな助けでもありがたく受け入れます!
android - リストビューにデータが入力されず、getView() が呼び出されない
私が書いている単純なアプリケーションにリストビューを表示するのにいくつか問題があります。何らかの理由getView()
で、アダプタ クラスのメソッドが呼び出されません。ただし、アダプタ クラスで whengetCount()
が呼び出されると、0 は返されませんが、実際には適切な値が返されます。なぜこれが機能しないのか、私は本当に混乱しています。
ここに私の活動があります:
アクティビティで使用されるレイアウトは次のとおりです。
最後に、これが私のアダプタ クラスです。