1. ホーム
  2. android

[解決済み] Android: スピナーをカスタムオブジェクトリストにバインドする方法は?

2022-05-10 07:30:29

質問

ユーザー・インターフェースに、いくつかの名前を含むスピナー(名前は表示されています)があり、それぞれの名前は独自のIDを持っています(IDは表示順序と等しくありません)。ユーザーがリストから名前を選択すると、変数currentIDは変更されなければなりません。

このアプリケーションには、ArrayList

ここで、User は ID と名前を持つオブジェクトです。

public class User{
        public int ID;
        public String name;
    }

ユーザー名のリストを表示するスピナーを作成し、スピナーアイテムをIDにバインドして、スピナーアイテムが選択/変更されたときに変数currentIDに適切な値を設定する方法がわからない。

どなたか、この問題の解決策を示すか、または問題を解決するために有用なリンクを提供していただければ幸いです。

ありがとうございます。

解決方法は?

あなたは この回答を見る . カスタムアダプタを使用することもできますが、単純なケースでは以下の解決策で問題ありません。

以下、再掲です。

スピナーでラベルと値の両方を表示させたいと思ってここに来たのなら、私がやった方法を紹介しましょう。

  1. を作成するだけです。 Spinner 通常の方法
  2. で2つの同じサイズの配列を定義します。 array.xml ファイル -- 一つはラベル用の配列、もう一つは値用の配列です。
  3. を設定します。 Spinnerandroid:entries="@array/labels"
  4. 値が必要なときは、次のようにします(いや、チェーンする必要はありません)。

      String selectedVal = getResources().getStringArray(R.array.values)[spinner.getSelectedItemPosition()];