忍者ブログ

とある社内SEの備忘録 !!

主にRPA、Androidアプリ開発について投稿しています。メモ書きです。

Spinnerで表示名とデータ値を別々に保持する方法

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Spinnerで表示名とデータ値を別々に保持する方法

Spinnerのアダプターには、ArrayAdapterを継承した独自アダプターを作成して、
表示にはデータ値群を設定する。
SpinnerAdapter carAdapter = new SpinnerAdapter(this,R.layout.spinner_item_002,carList2.toArray());
public class SpinnerAdapter extends ArrayAdapter{
Map<String,String> map;
Mapを作成する。Keyはアダプターに設定したデータ値、Valueは表示したい表示名を設定する。
carAdapter.setMap(carMap);

独自アダプタークラスでは、getViewとgetDropDownViewで表示テキストにMapのValueを設定する
    @NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View v = super.getView(position,convertView,parent);
TextView tv = v.findViewById(R.id.tvName);
tv.setText(map.get(tv.getText().toString()));
return v;
// return super.getView(position, convertView, parent);
}
@Override
public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View v = super.getDropDownView(position, convertView, parent);
CheckedTextView ctv = v.findViewById(R.id.ctvName);
ctv.setText(map.get(ctv.getText().toString()));
return v;
// return super.getDropDownView(position, convertView, parent);
}
結構簡単。

PR

コメント

プロフィール

HN:
Satoshin
性別:
男性
職業:
開拓エンジニア
趣味:
ダーツ、麻雀、カラオケ、ジョギング
自己紹介:
横浜在住の30代♂

某企業の情報システム部門に所属。
⇒転職活動中

業務効率化を推進しつつ自社用Androidアプリを開発している。
言語:Java、VB.NET、VBA、ASP.NET、C#
興味:Kotlin、Python、AWS、UiPath

横浜圏の友人皆無・・(´;ω;`)
RPA、ダーツ、麻雀、飲み仲間募集中w

麻雀格闘倶楽部はココに出没中

AbemaTVでM.LEAGUE鑑賞中!!

P R