問題タブ [android-arrayadapter]

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

android - ArrayAdapter と android:textFilterEnabled

ListView を含むレイアウトを作成しました。

この ListView 内に表示されるデータはそれほど複雑ではありません。ほとんどの場合、拡張されたアクティビティが開始されたときに渡される配列です。

行自体はアイコンとテキストの外に存在するため、ImageView と TextView です。ListView を埋めるために、ArrayAdapter を使用します。これは、表示する必要があるすべてのテキスト項目を含む配列が渡されるためです。

実際にそれらをフィルタリングできるようにしたいので、ListView xml 宣言に追加する android:textFilterEnabled パラメータを見つけました...検索フィールドがうまく表示されますが、いくつかの文字を入力するとフィルタリングされませんが、リスト全体を削除するだけです。これは、textfilter が何をフィルタリングする必要があるのか​​ わからないためであることがわかりました。

私の質問は次のとおりです。テキストフィルターに何をフィルターする必要があるかを伝える必要があることはわかっています。また、フィルター処理する必要があるテキストで配列がいっぱいになっているので、これら2つを結合するにはどうすればよいですか?

CursorAdapter を拡張する例を見てきましたが、ここでも Cursor がありません。DB を呼び出したくありません。データを使用して配列を再利用し、明らかに ArrayAdapter 自体を再利用して、データが画面上で適切に表示されます (つまり、ImageView と TextView レイアウトを使用)。

これはどのように行うことができますか?

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

android - ボタンが UI のスクロールをトリガーできるのに、アクティビティ内の TimerTask がトリガーできないのはなぜですか?

長い話短い: 私のアクティビティのメソッドは、本来のように ArrayAdapter を介して ListView を更新およびスクロールしますが、(ListView に表示される) メッセージをポーリングするための内部 TimerTask のメソッドは、ListView を更新しますが、スクロールしません。なんで?

長い話:

このレイアウトのチャット アクティビティがあります。

内部 listView (id messageList を持つ) は ArrayAdapter によって取り込まれ、以下の XML を膨張させ、その中の文字列を置き換えます。

問題は: メイン レイアウトには、チャット メッセージ用の EditText と、メッセージを送信するための Button があります。アクティビティ スコープでアダプターを宣言しました。

そのため、sendMessage(View v) 内では、notifyDataSetChanged() がそれに応じて ListView をスクロールするため、最新のチャット メッセージを自動的に表示できます。

しかし、私の TimerTask の中では、できません。ListView は更新されていますが、自動的にスクロールしません。私は何を間違っていますか?

スクロールを一番下に強制するにはどうすればよいですか? lv.getBottom()-lv.getHeight() を使用して scrollTo を使用しようとしましたが、機能しませんでした。これは Android SDK のバグですか?

膨大な量のコードで申し訳ありませんが、この方法で質問がかなり明確になると思います。

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

android - Android - 展開可能な項目が 1 つだけの ListView

アダプターを使用し、うまく機能するチェックボックス付きのリストビューがあります。

リスト全体を拡張可能にする方法も知っています。

しかし、展開可能なアイテムを 1 つだけ持つことは可能ですか、それともリスト全体である必要がありますか?? もしそうなら、それはどのように行われますか?

0 投票する
4 に答える
17113 参照

android - ArrayAdapter 順の ListView がスクロール時に混同される

各行にアイコン ImageView と TextView を表示するカスタム ArrayAdapter に ListView があります。スクロールできるようにリストを十分に長くすると、順番が正しく表示されますが、下にスクロールし始めると、以前のエントリの一部が再表示され始めます。上にスクロールすると、古い順序が変わります。これを繰り返し行うと、最終的にリスト全体の順序がランダムに見えるようになります。したがって、リストをスクロールすると、子の順序が変更されるか、図面が正しく更新されません。

このようなことが起こる原因は何ですか?アイテムがユーザーに表示される順序は、ArrayList に追加された順序と同じにするか、少なくとも 1 つの静的な順序のままにする必要があります。より詳細な情報を提供する必要がある場合は、お知らせください。どんな助けでも大歓迎です。ありがとう。

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

android - 特定の項目のみを展開できるリストを作成するにはどうすればよいですか?

展開可能なアイテムと単一のアイテムを含むリストを作成しようとしています。単一のアイテムまたは展開可能なリストの子がクリックされたときに、アイテムのテキストに基づいてインテントを呼び出すことができるようにしたいと考えています。

展開可能なリストが機能すると思いますが、展開可能なリストのアイコンが表示されないように、展開可能なリストに項目を設定する方法はありますか? 文字列配列以外のものを使用する必要がありますか?

これを行う最善の方法は何ですか?

ありがとう

以下は私の不完全なコードです。項目「ゾーン 1」、「ゾーン 2」、「ゾーン 3」を項目「アトランタ」と「ボストン」の間、またはアトランタのサブセットとして挿入したいと思います。

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

android - Androidのファンシーダイナミックリスト:TableLayoutとListView

各レコードが複数の列(テキスト、ボタン)で構成されている、それほど重要ではない動的リストが必要です。次のようになります。

最初はそれを達成するための明白な方法はであるように思われましたTableLayout。res / layout / *。xmlでレイアウト/スタイリングデータを指定し、Javaコードからのデータセットを入力することを期待していました( * .xmlでアイテムListViewを指定しTextView、それを配列にバインドすることができます)。を使用してArrayAdapter)。しかし、しばらく遊んだ後、私が可能だと思ったのは、TableLayoutプログラムで完全に入力することだけです。それでも、Javaコードで直接レイアウト属性を作成TableRowTableRowて設定することは、十分に洗練されているようには見えません。

だから問題は、私は正しい道を進んでいるのかということです。TableLayoutそれを達成するのに本当に最高のビューですか?たぶん、ListViewそのような要件を満たすために拡張するか、何か他のものがより適切ですか?

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

android - Android: 向きの変更後に、notifyDataSetChanged() がリストビューを更新しない

私はやや複雑な問題を抱えており、ここの誰かが私を助けてくれることを願っています.

クリック イベントで、スレッドを作成し、このメソッドに基づいて実行時間の長い操作を開始します。長時間実行タスクが完了すると、別のメソッドへのコールバックが実行され、ハンドラーへのポストが実行されます。

Runnable を呼び出すもの:

最後に、私の updateDisplay() メソッドが行っていることは次のとおりです。

これを通常に行うと、これは美しく機能します。ただし、長時間実行されている操作の実行中に向きを変更すると、機能しません。コールバックを適切に作成し、remindersList にはアイテムが含まれています。しかし、この行に到達すると:

何も起こりません。奇妙なことに、別の送信を行い、プロセス全体を (向きを変更せずに) 再度実行すると、実際にはビューが 2 回更新されます。したがって、ビューは最初の送信の結果で 1 回更新され、2 番目の送信の結果で 1 秒後に更新されます。したがって、アダプター DID はデータを取得しますが、ビューを更新していません。

これがオリエンテーションの変更と関係があることは知っていますが、私の人生では理由を理解できません. 誰でも助けることができますか?または、向きを変更してスレッドを処理する別の方法を誰かが提案できますか?

バラ

0 投票する
4 に答える
9679 参照

java - Android初心者の質問ArrayAdapter.setAdapterのnullポインタ

私は最初の Android アプリの学習と構築を遅らせてきました。私は Java を初めて使用しますが、C#、VB.NET (当時)、Objective-C (ストアに 6 つのアプリがあります)、および Fortran (昔は waaaaaaaaaaaaaaaaaaaay ;) でいくつかのプロジェクトを既に実行しています。

それで、海外からhtcの伝説(私は米国にいません)を受け取りました。これは、開発用の適切な中間レベルのデバイスを用意するために購入しました(ルート化されていないadnroid 2.1を実行しています)。

私が開発しているアプリケーションは、ターゲット レベル 4 (android 1.6) です。拡張子が .mp3 の 5 Mb の sqlite3 データベースを使用して、apk 内の圧縮を回避し、アセットからシステム フォルダーに適切にコピーします。

エミュレーターではすべて正常に動作し、デバイスでは、データベースをコピーした後のアプリのファイル サイズが、エミュレーターで表示されるものと正確に一致することがわかります。

現在、リスト ビューとスピナーを使用したメイン アクティビティで、2 つの配列アダプターを介していくつかのデータをバインドしています。デバイス上で実行すると、すべてがスムーズに実行されます。ただし、デバイスで実行しようとすると、コードのこの部分:

両方の指定.setAdapter(adapterShapes);
& types.setAdapter(adapterTypes);

Null Pointer の例外を教えてください。

私はMacでEclipseを使用しています.LogCatウィンドウはスローします:

06-25 18:41:37.842: エラー/AndroidRuntime(9523): キャッチされていないハンドラー: キャッチされていない例外が原因でスレッド メインが終了しました

06-25 18:41:37.891: エラー/AndroidRuntime(9523): java.lang.RuntimeException: アクティビティ ComponentInfo{com.davidhomes.steel/com.davidhomes.steel.mainAct} を開始できません: java.lang.NullPointerException

06-25 18:41:37.891: エラー/AndroidRuntime (9523): android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2596) で

06-25 18:41:37.891: エラー/AndroidRuntime(9523): で

Android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)

06-25 18:41:37.891: エラー/AndroidRuntime (9523): android.app.ActivityThread.access$2200 (ActivityThread.java:126) で

06-25 18:41:37.891: エラー/AndroidRuntime (9523): android.app.ActivityThread$H.handleMessage (ActivityThread.java:1932) で

06-25 18:41:37.891: エラー/AndroidRuntime (9523): android.os.Handler.dispatchMessage (Handler.java:99) で

06-25 18:41:37.891: エラー/AndroidRuntime(9523): android.os.Looper.loop(Looper.java:123) で

06-25 18:41:37.891: エラー/AndroidRuntime (9523): android.app.ActivityThread.main (ActivityThread.java:4595) で

06-25 18:41:37.891: エラー/AndroidRuntime(9523): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で

06-25 18:41:37.891: エラー/AndroidRuntime(9523): java.lang.reflect.Method.invoke(Method.java:521) で

06-25 18:41:37.891: エラー/AndroidRuntime (9523): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:860) で

06-25 18:41:37.891: エラー/AndroidRuntime (9523): com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618) で

06-25 18:41:37.891: エラー/AndroidRuntime (9523): dalvik.system.NativeStart.main (ネイティブ メソッド) で

06-25 18:41:37.891: エラー/AndroidRuntime(9523): 原因: java.lang.NullPointerException


-------------------------------------------------- ------------ 06-25 18:41:37.891: エラー/AndroidRuntime (9523): com.davidhomes.steel.mainAct.onCreate (mainAct.java:183) で

-------------------------------------------------- ------------

06-25 18:41:37.891: エラー/AndroidRuntime (9523): android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) で

06-25 18:41:37.891: エラー/AndroidRuntime (9523): android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2544) で

06-25 18:41:37.891: エラー/AndroidRuntime(9523): ... 11 詳細

06-25 18:46:38.252: エラー/ActivityManager(99): トップ アプリの設定に失敗しました!

183 行目は最初の setAdapter 呼び出し (designations.setAdapter(adapterShapes);) です。コメント アウトすると、2 番目の setAdapter がコードを壊すコードになります。

ここで少し迷っています。アダプターは、シミュレーターとデバイスから実行すると、ログ ウィンドウに適切な数のアイテムを表示します。

私はJavaとAndroidの両方の初心者であることを認めているので、どんな助けも大歓迎です。

よろしく
デビッド

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

android - ArrayAdapter と ViewHolder を使用した ListView が間違った項目にアイコンを追加する

ListViewを使用するダイナミックがありますArrayAdapter。スピナーから名前を選択すると、名前と男性か女性かを示すアイコンが に追加されますListView

ほとんどすべてが適切です (名前がアイコンと共にリストに正しく追加されます)。しかし、性別を示すアイコンが の間違ったアイテムに追加されますListView。名前はリストの一番下に追加されますが、アイコンはリストの一番上の名前に配置されます。それが私が使用している方法であるかどうかはわかりませんが、 Android Web サイトViewHolderにはドキュメントがありません。

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

android - Unable to modify ArrayAdapter in ListView: UnsupportedOperationException

I'm trying to make a list containing names. This list should be modifiable (add, delete, sort, etc). However, whenever I tried to change the items in the ArrayAdapter, the program crashed, with java.lang.UnsupportedOperationException error. Here is my code:

I tried insert, remove and clear methods, and none of them worked. Would someone tell me what I did wrong?