問題タブ [android-cursoradapter]
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 - ListViewから選択したビューを取得する
私はCursorAdapter
自分のを処理するためにを使用していListActivity
ます:
CursorAdapter
そして、拡張してオーバーライドする私のアダプタークラスbindView
:
私のリストアイテムのレイアウトはxmlファイルで定義されていますlist_item.xml
:
TextView
内のレイアウトでの表示を切り替えるにはどうすればよいonListItemClick
ですか?私はもう試した:
しかし、クリックしたものに関係なく、ランダムに切り替えるリスト項目を選択しているようです。
android - asynctask を使用してコンテンツ プロバイダーからイメージ ビットマップをロードする
MediaStore コンテンツ プロバイダーを介して SD カード上のすべての画像をクエリし、それらのサムネイルを GridView に表示しようとしています。
ただし、メインスレッドで画像のサムネイルを読み込むと、スクロールが非常に遅くなります...
だから私は asynctasks を介してビットマップを読み込もうとしました: スクロールのパフォーマンスは向上しましたが、グリッド項目は正しいビットマップを取得するまでサムネイルをリロードし続けます...
ビットマップをロードする私の asynctask は次のとおりです。
そして、ここに私のカスタムカーソルアダプターがあります:
このコードでカーソルをクエリし、アダプターに送信します。
カスタム カーソル アダプタの bindview() が想定よりも頻繁に呼び出されるように見えます...スクロールのパフォーマンスを維持しながら、グリッドビューの画像のリロードを停止する方法を知っている人はいますか??
前もって感謝します。
android - SimpleCursorTreeAdapterを使用してExpandableListView子ビューのボタンのリスナーをクリックします
私が取り組んでいるのは次のとおりです。SimpleCursorTreeAdapterを使用してSQLiteデータベースからビューを埋めるExpandableListViewがあります。カスタムのグループビューと子ビューを使用していますが、グループビューと子ビューの両方にボタンがあります。これらのボタンにボタンリスナーを設定して、リスナーが呼び出されたときに、それがどの行(またはカーソルID)から来たのかを知る方法を知る必要があります。動作するリスナーをonChildItemDetailsClicked()に設定できますが、リスナー内では、どの行がボタンの押下に対応するかわかりません。何か案は?
グループビュー:
チャイルドビュー:
android - カスタムのシンプルカーソルアダプターの作成
クリック時に行アイテムの色を簡単に変更できるように、非常に単純なカーソルカスタムカーソルアダプターを作成したいと思います。次のコードを使用する
このスレッドからコードを取得しましたhttps://stackoverflow.com/a/7649880/498449
単純なカーソルアダプターを使用してコードをonClickに配置しましたが、ListFragmentのデフォルトのリストはビューを再利用するため、スクロールすると複数のビューが強調表示されます。IRCについて話すと、カスタムカーソルアダプターを作成することが提案されました。ただし、これを行う方法と、上記のコードスニペットがどこに収まるかについてのベストプラクティスを見つけることができないようです。助けていただければ幸いです。
オンラインで見つけたコードでカーソルアダプタを更新しました。しかし、私には2つの問題があります。1.カーソルローダーを使用しているので、コンストラクターに渡す「カーソル」オブジェクトがありません。2.コンストラクターが非推奨になったことを示す警告がEclipseから表示されます。
android - listViewに挿入された行が表示されないのはなぜですか?
データベースにアイテムを追加するとlistViewに表示されないため、確かに何かが欠落しているカスタムcursorAdapterがありますが、アプリケーションを再起動すると、追加された行が表示されます。
これが私のアクティビティとcustomAdapterです:
ご清聴ありがとうございました。
編集:私は解決策を見つけましたが、私はそれが嫌いです、私は他の解決策があったらいいのにと思います。
今、私は自分の活動に参加しています:
私はそれが正気ではないと思います、更新後にリストを更新するより簡単な方法があるはずです。ここでは、カーソルを再作成し、新しいカーソルでフィードするcursorAdapterを再作成してから、このcursorAdapterをlistViewに影響を与えます。これはandroiddocのメモ帳の例ですが、カーソルを操作するだけでアダプターとlistViewを更新する方法があると確信していますが、それを理解するのに十分な知識はありません。
android - さまざまな行タイプのCustomAdapter
customAdapterに問題があります。editText、データベースのリスト、そしてeditTextをもう一度表示したいと思います。
私のアダプターコードをお見せしましょう:
その結果、データベースのリストはありますが、editTextはまったくありません。私はAndroidを初めて使用するので、bindViewとnewViewについて、明らかに何かを誤解したか、単に理解できませんでした。
ご清聴ありがとうございました。
編集:わかりました、私は私が欲しいものをひどく説明します、それについて申し訳ありません(そしてそれが間違っているので私のコードがあなたを誤解している方法:()
私が欲しいのは次のテンプレートです:この構造を持つカスタムcursorAdapterを持つListView:
空のEditText(ユーザーがクリックしてデータベースに行を追加できる場所)
textViewsのデータベーステーブルからのデータを示す行リスト
最後の行には、最初の行と同じ目的を持つ他のeditTextがあります。
カスタムアダプタがどのように機能するかを理解しようとしています。ソースを読んだことがありますが、私の場合はその方法がわかりません。
android - onContentChanged() でカスタム CursorAdapter を使用する Android
listViewでcursorAdapterを使用して、適切なコードを作成しようとしています。
アクティビティで、カーソル内のデータを変更すると、アダプター内のカーソルが自動的に更新され、アダプターともちろん listView が更新されることを望みます。
マジック、この関数があります: onContentChanged() これは、このアダプターのカーソルが「通知」されたときに呼び出される CursorAdapter の関数です。
しかし、私はこの関数の呼び出しに失敗しています。
ここで、コードの興味深い部分 (これは機能しません) です。どこが間違っているのか、何が誤解なのかを誰かが教えてくれれば、感謝します。
アクティビティ :
CursorAdapter :
私の問題は、この関数を呼び出したいのですが、呼び出されていないことです。
そしてデータベースクラスですが、データベースへの挿入は問題ないので、それが重要かどうかはわかりません:
わかりました、もう一度、私の2つの質問:
1)アダプタの onContentChanged() 関数を呼び出すにはどうすればよいですか (もちろん、明示的に呼び出す必要はありません)。
2) 私のコードは、listView にカスタムの cursorAdapter を供給する良い方法なのだろうか。
ご注意いただきありがとうございます。
android - Android ContentProviderは、バッチ操作で多くの行が挿入されると、setNotificationUri()のバーストをCursorAdapterに呼び出します
ContentProvider
SQLiteデータベースへのアクセスを管理するカスタムがあります。データベーステーブルのコンテンツをにロードするには、aと:ListFragment
を使用します。LoaderManager
CursorLoader
CursorAdapter
ContentProvider
SQLiteデータベースは、Webサービスから多数のアイテムをフェッチし、バッチ操作( )を介してこれらのアイテムをデータベースに挿入するバックグラウンドタスクによって更新されますContentResolver#applyBatch()
。
これがバッチ操作であっても、ContentProvider#insert()
行ごとに呼び出されるgetsはデータベースに挿入され、現在の実装では、挿入コマンドごとにContentProvider
呼び出されます。setNotificationUri()
その結果CursorAdapter
、通知のバーストを受信し、UIが頻繁に更新されて、結果として迷惑なちらつき効果が発生します。
理想的には、バッチ操作が進行中の場合、ContentObserver
各挿入コマンドではなく、バッチ操作の最後にのみ通知する方法が必要です。
これが可能かどうか誰かが知っていますか?ContentProvider
実装を変更して、そのメソッドをオーバーライドできることに注意してください。
android - Android の評価バーとリスナー
Android および Java プログラミングは初めてです。カスタム カーソル アダプタを実装するクラスがあります。問題は、リスナー内のカーソル アダプター内の一部の情報にアクセスできるようにする必要があることです。下記参照:
どうもありがとうございました。
android - 行タイプの説明が異なる CustomAdapter
コードを投稿するために Stackoverflow を試してみましたが、修正するにはミスが多すぎると思います。
私の最大の問題は誤解であるため、それをどのように開発する必要があるかを尋ねます。
問題: カスタムのcursorAdapterから供給されるlistViewを実行したいと考えています。
なぜカスタム cursorAdapter ?
今のところ、listView の最初の行に editText を配置し、次にデータベースの項目を配置し、次に listView の最後の行に別の editText を配置したいからです。ヘッダーとフッターで解決できましたが、後で同じリストビューに他の多くの行テンプレートが必要になり、さらに多くのカーソルが必要になる可能性があります。それが理由です。
このチュートリアルに従って、アダプターで多くのタイプを使用しようとしました: 1つのリストビューに多くの行タイプがあることについてのリンク
もちろん、bindView と newView をオーバーライドしました。
しかし
失敗しています。両方のeditTextをlistViewに直接追加する方法がわからないなど、多くのバグがあります...私にとって最大の問題は理解です。それを行う方法の説明が必要です。正確に何をすべきかを意味しますbindViewで、そしてnewViewで正確に何をすべきか。
気が変わったので、これが私のアダプターのコードです。気をつけて、それは多分恐ろしいです。
注:後でviewHolderなどの最適化を修正します...
注2:念のため、これが私の主な活動コードです
そして心配しないでください:
1) 関数 showAlertWindowblabla() ==> 動作します
2) createNoteTop 関数も機能し、データベースに行を挿入します。
読んでくれてありがとう、あなたの答えを探しています。
編集:わかりましたので、大したことではない仕事をした後、私は自分が望むものに近づいています。残念ながら、私はまだ表示のバグがあります。フィールドを変更すると、理由がわかりません。彼はこのフィールドをリストの別の場所にドロップするだけです。これは (bindView または newView メソッドで) 簡単に修正できる大きな間違いだと思いますが、疲れていて、どこから来たのかわかりません。そこで、一石二鳥となるように、customAdapter の修正コードを投稿します。