問題タブ [baseadapter]
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 - Service、ProgressBar、Gridview (および彼の notifydatasetchanged) の組み合わせで QuickAction-Implementation がうまくいかない
(スペルの間違いをお詫びします)
いくつかの組み合わせに問題があります:
GridView を使用して、データベースからショーのコンテンツをダウンロードします。onClick 後で表示できるファイルがダウンロードされます。その約20MB。このダウンロードはサービスによって行われます。
gridView のすべての項目には、レイアウトに進行状況バーが含まれています。このプログレスバーは、アイテムがサービスを介してバックグラウンドでダウンロードされている場合にのみ表示されます。
サービスは、ダウンロードの進行状況に関するブロードキャストを送信します。インテントには、グリッドビューのアダプターのデータでアイテムを見つけるためのアイテムの ID が含まれています。
アクティビティに BroadcastReceiver が登録され、gridview-adapter の関数「setProgress」を呼び出す Progress Update を取得します (同時ダウンロードが可能であることを忘れないでください)。
この時点まで、すべてが正常に機能します。
さらに、http://www の QuickAction 実装を使用しています。londatiga.net/it/how-to-create-quickaction-dialog-in-android/ (2 つ以上のハイパーリンクを投稿できないためスペース)
問題は次のとおりです。
notifydatasetchanged が呼び出され、ユーザーがアイテムをタップすると、クイックアクションが間違った位置に表示されることがあります。
これを明確にするために、ここに2つの写真があります:
最初のものは何が起こるべきかです (この場合、グリッドビューの最初の項目をクリックします) http://dl.dropbox.com/u/9031500/expected.png
2 番目の図は、時々何が起こるかを示しています (一部のダウンロードが実行されている場合のみ、「notifydatasetchanged」とビューの再構築が原因であると推測されます)。これも最初のアイテムのクリックでしたが、残念ながらクイック アクションは 4 番目のアイテムに表示されます: http://dl.dropbox.com/u/9031500/wrong.png
これは、クイックアクションを呼び出すためのアクティビティでの実装です。
たぶん、誰かが私がこの問題を処理する方法について何か考えやヒントを持っているでしょう! 100万前もってありがとう!
android - コンテンツ ビットマップの更新時に Gallery オブジェクトを更新する
android.widget.Gallery から派生したクラスと、createBitmap がオーバーライドされた BaseAdapter から派生したクラスがあります。ギャラリーには、インターネットからダウンロードされた画像がたくさん表示されますが、ユーザーはそれらのすべてを見ないことを選択できるため、必要な場合 (つまり、ギャラリーに表示される場合) にのみ各画像をダウンロードします。そのため、最初の呼び出しで createBitmap はデフォルトの「画像のダウンロード」アイコンを返し、適切な画像のダウンロードがスケジュールされます。画像の準備ができると、アクティビティに通知が届きます。しかし、現在表示されているギャラリー オブジェクトを強制的に更新する方法がわかりません (ただし、ビューからスクロールして戻ってダウンロードした画像を表示するだけで十分です)。notifyDataSetChanged() は喜びを与えません...
何か案は?
android - リストビューの各行内の要素の状態を保持します
インフレータを使用して各行を膨らませてリストビューを設計し、クリックイベントで convertView の要素の色を変更しました。しかし、リストをスクロールした後、要素はこれらの変更を失います。それらの状態を「保存」して表現するにはどうすればよいですか?
送信ボタンをクリックしたときに、クリックされなかった「リストアイテム」の総数を計算するにはどうすればよいですか?
スクロール前 http://69.imagebam.com/download/l4tJZG08i5tM_7SV3K_fHQ/18631/186307764/snap1.png スクロール後 http://17.imagebam.com/download/CC3cRv0ITi42Fo8WWUs86g/18631/186307781/snap4.png
これが私のコードです:
java - 空の ArrayList を処理する Android BaseAdapter
ベースアダプターを使用して ListView に ArrayList> を設定しようとしています。ArrayList はデータベースによって入力されます。たとえば、アプリが初めて起動されたときなどに、データベースにエントリがないため、空の ArrayList になる可能性があります。ArrayList が空の間、de-script ではない "java.lang.RuntimeException: Unable to start activity ComponentInfo ... java.lang.NullPointerException" を受け取ります。
私の onCreate メソッドは次のようになります。
lv.setAdapter(null) を設定すると、設定した空のリスト ビューがアプリに表示されます。ただし、BaseAdapter に任せると、エラーが発生します。私は 2 つの Android List8.java と List14.java の例に従いましたが、どちらの方法でも同じ結果が得られます。私の BaseAdapter クラスは次のようになります。
また、表示するものがある場合、ListView はアイテムを適切に表示することにも注意してください。ArrayList が空の場合にのみ失敗します。また、私は Android 2.2 を使用しています (最高ではありませんが、私は知っています)。どんな助けでも大歓迎です。
android - 特定の項目を変更するためのカスタム ListView アダプター
データの視覚的な側面を変更するために、Android 用のカスタム ListView アダプターを作成しました。ListView を読み込むと、目的のアイテムの外観が変更されます。ビューをスクロールすると、最終的にリスト内のすべてのアイテムの外観が変更されるまで、他のアイテムがランダムに変更されます。
このタイプのコードについてSOで読んだことから、Androidは古いビューを再利用するため、position
フィールドが
public View getView(int position, View convertView, ViewGroup parent)
必ずしもデータ構造にマップされないことがわかります。これは、私が苦労している動作のようです。
Vincent が示唆するように、ViewHolder パターンを使用して getView メソッドを更新しました。
変更する必要がある項目は静的なので、実行時に変更するよりも良い方法があれば、それもうまくいきます! どんな助けでも大歓迎です、ありがとう。
android - ListViewを動的に更新する方法は?
TextViewと各行に1つの削除ボタンを使用してListViewを作成しています。
リストにデータを入力するには、カスタムアダプター(ベースアダプターを拡張)とsqlitedbを使用してリストにマップします。
私の要件は、レコードを削除してリストを更新する必要がある行の削除ボタンをクリックすることです。
dbからレコードを削除することはできますが、デバイスをローテーションするか、アクティビティからアダプターの新しいインスタンスを割り当てるまで、リストが更新されません。
私は次の答えを試し ましたが、私の場合はうまくいきませんでした。この回答と私の場合の違いは、私がbaseAdapterを使用していて、彼がcursorAdapterを使用していることです。
私の活動は次のようになります
ブックマーク.xml
listitem.xml
deleteBookmarkメソッド
ここでは、データベースからレコードを削除し、削除ボタンのテキストを削除から削除に変更しています
android - ListView 行の高さを設定する方法
行の高さが同じでない下の画像を表示しています。行を同じ高さにする必要があります。
私のプログラムでは、解析した XML サービスからデータを取得し、結果をリスト ビューに表示していますが、ListView 行の高さが同じではありません。
私はすでに高さを設定しています
android:layout_height="10dp"
しかし、リストビューで表示するときはまだ同じではありません。
これは getView 用の私のカスタム アダプターです:-
誰でも、望ましい結果を得るための適切な方法を教えてください。
前もって感謝します。
java - パディングを無視するAndroid ListViewの行レイアウト
これは私が見落としている単純なものだと確信していますが、理解できません。シンプルなレイアウトのカスタム アダプターを使用する ListView があり、パディング値が無視されているようです。レイアウトをどのようにしたいかは次のとおりです。
ただし、パディングは無視されます。ネストされた LinearLayout を使用すると機能しますが、内部の LinearLayout は無意味に見えます。これは機能します:
最初のレイアウトは ListView の外で機能するので、困惑しています。参考までに、使用されているスタイルを次に示します (パディングも指定します)。
そして含まれているレイアウト:
レイアウトが膨張する方法は次のとおりです(私はもともとnullの親を提供していて、それが問題だと思っていましたが、そうではないようです:
android - 生成されたビューをキャッシュすることにより、カスタム実装されたBaseAdapterをバックアップしたListViewを最適化します
listviewで形成されたタブに膨大なビューを表示しています。ListViewは、BaseAdapterを拡張するアダプターからデータを取得します。タブを前後に移動するたびに、PagerはListViewでビューを何度も作成する傾向があり、貴重なCPUを浪費します。
OK、BaseAdapterのgetViewでparentView.getChild(atIndex)を使用してみましたが、ListViewをスクロールするとビューが台無しになります。
質問、ビューをキャッシュしてパフォーマンスを最適化する方法はありますか?
よろしく、
android - ロードおよびスクロール時にリストビューの行が混合色になる
子の1つのテキスト値に基づいて行の背景色を設定しています。ただし、テキスト値に関係なく、複数の背景が設定されています。上下にスクロールすると悪化します。アダプターのコード: