問題タブ [simplecursortreeadapter]
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 - エラーの原因となる SimpleCursorTreeAdapter
以下は、Simple Cursor Tree Adapter のサブクラスである内部クラスと一緒に私の活動からのコードです。問題は、エラーが発生したの子要素をクリックしたときです
私のlogcatからの出力は以下の通りです。さらに、expendableList groupitem に対して同じ値を取得しています。たとえば、「A」が 2 つある場合、同じ子アイテムで「A」が 2 つ取得されます。また、私は Android の初心者です。
android - これを修正する方法は、カーソルが ExpandableListView を使用して有効な場合にのみ呼び出す必要があります
こんにちは、google android サンプルで指定されているように、AsyncQueryHandler で ExpandableListView を使用しています。しかし、カーソルが有効な場合にのみ呼び出す必要があるという例外が発生しています
この問題を解決するための解決策やハックを見つけることができません
私はまた、このようなアダプター内でdbを照会しようとしています
と
これは問題になりますか?
java - 検索を実装した CursorTreeAdapter
Android用のアプリケーションを作成しており、CursorTreeAdapterをExpandableListViewとして使用しています。フィルター処理された ExpandableListView アイテムを表示するために検索ボックスを使用したいと考えています。このような:
これまでに書いたコードは次のとおりです。
MainActivity.java
:
MyListAdapter.java
:
私はコードを非常に単純化し、きれいにしました(そうする必要がないように)。
ご覧のとおり、合計 3 つのカーソルがあります (グループ用に 1 つ、子用に 2 つ)。データはContactsContract (ユーザーの連絡先) から取得されます。子 1 のカーソルはすべての連絡先のすべての電子メールを表し、子 2 のカーソルは連絡先のすべての表示名を表します。(ほとんどのローダー関数はhereからのものです)。
唯一のことは、検索をどのように実装するかです。コンテンツ プロバイダまたはデータベース内の生のクエリを介して行う必要がありますか? 両方の子テーブルの結果が表示されることを望みます。私の場合、入力中にエラーが発生しやすいため、それtokenize=porter
はオプションだと思います。
誰かが私を良い方向に向けてくれることを願っています。
編集:
私はこれを試しましたMyListAdapter.java
(Kyle I.FilterQueryProvider
の提案による):
そしてこれでMainActivity.java
:
しかし、検索しようとすると、次のエラーが表示されます。
私が間違っていることは何ですか?それとも、2 つのクエリ (表示名と電子メール) ではなく 1 つのクエリ (表示名) しか返さないためですrunQuery
か?
編集2:
まず、すべてのデータベース実装をContactsContractに変更しました。これにより、独自のデータベース実装を作成する必要がなくなるため、保守が容易になります。
私が今試したことは、自分の制約をrunQuery()
ofに保存してからFilterQueryProvider
、getChildrenCursor
その制約に対してクエリを実行することです。( JRaymondの提案による)
そして、ここにあるFilterQueryProvider
:
ご覧のとおり、getChildrenCursor
作業を行うためにグループのクエリをロードしました。MainActivity
バンドルから取得したクエリで実行する必要があるのは何ですか?
android - CursorTreeAdapter を使用した ExpandableListView での「_id」の使用
の使用法は_id
、私の頭では十分に明確ではありません。onChildClick
以下のすべての可能なアクション( 、onItemClick
、などonExpand
、onCollapse
または描画)を考慮してくださいExpandableListView
。
次の関係で同じ_id
値を使用しても問題ありませんか:CursorTreeAdapter
- B with C (これは私が知っている問題です)
- A with D (これも問題です、私は知っています)
- A with B (これは私が混乱しているものです)
- E と C (これも私を混乱させます)
- E with B (考えられる問題)
- C と D (OK だと思います)
android - Android ListView を自動的に更新するにはどうすればよいですか?
私のアプリには ListView があります。データは、SimpleCursorAdapter を使用して ListView に入力されます。データベースに変更があったとき、またはボタンをクリックしたときに、ListView を自動的に更新したい。adapter.notifyDataSetChanged() を試しましたが、効果的ではありません。良い解決策が見つかりませんでした。ユーザーが EditText に値を入力し、[送信] ボタンを押して、入力したデータを SQLite データベースに保存するたびに、ListView を更新する必要があります。これが私のコードです:
どんな助けでも大歓迎です.よろしくお願いします
android - SimpleCursorTreeAdapter の子の更新
データベースにデータを表示するために SimpleCursorTreeAdapter を使用しています。ローダーを使用してすべてのカーソルを管理しています。すべて正常に動作します。ただし、各子ビューにはいくつかの画像があります。これにより、スクロール時に顕著なカクつきが発生します。したがって、非同期タスクを使用してバックグラウンドで画像をデコードしたいと考えています。(疑似コード) のようなもの:
onPostExecute() 関数で imageview の準備が整うまでに、bindChildView で提供されるビューはリサイクルされ、別の子要素を指している可能性があります。イメージビューを追加する場所を決定するにはどうすればよいですか?