support.v4とかsupport.v7の数字はAPIバージョンかと思っていたのだが、履歴を見るとv7にAPI19以下向けが追加されていたので、言い切れないと思った。
Support Library Revision History | Android Developers
試しに全部外してみたのだが、Android 6.0以降で必要となる位置情報許可の確認で使うAPIが、v4かAPI23以降しか無さそうだった。
そう考えると、この数字は「APIレベルXX以降」ではあるのだが、XX未満というのがわからないのだな。
ActivityCompat.checkSelfPermission()も、API4以降だったら使う機会があるということなのか。
SDKのMINを設定して、それでもコンパイルが通るならsupportは使わなくてもよいと考えて良い気がする。
ダイアログの表示はできるようになったので、次はリストの表示だ。
リストを追加する
データが固定の場合は、こういうイメージでよいのかな。
データの見せ方はAdapterViewから派生したListViewなどが制御する。
AdapterViewが扱うデータはAdapterから派生したArrayAdapter<T>などが持つ。
まあ、持つといっても、実際はnewするときに引数で配列を渡すくらいだろう。
DialogFragmentの場合は、AdapterViewに相当する部分はDialogFragment側が準備してくれるので、データを準備してsetSingleChoiceItems()などで渡してやるとよい。
内容が可変でないならば、string-arrayで準備するのもよいだろう。
さて、内容が可変で、動的に更新したい場合はどうだろうか。
幸い、BDS Clientの生成ソースは通常のListViewを動的に更新するようになっているので、まねをするとよいと思われる。
BaseAdapterをextendsしたclassをまるまる持ってきた。
これのインスタンスをsetSingleChoiceItems()に設定すると、とりあえず動いた。
接続の実装は、次回だ。
あとは、画面外をタップしたらダイアログが閉じるのだけど、そのときにScanを停止させたい。
builderにsetOnCancelListener()というのがあったのでOnCancelListenerをnewしてみたのだが、ダイアログ表示時に落ちてしまった。
ドキュメントを読むと、onDismiss()をオーバーライドすると呼ばれるそうだ。
適当にやっちゃいかんな。
public void onDismiss(DialogInterface dialog);
うん、呼ばれた。
ここまでをコミットした。
サンプルそのままの箇所も多いが、数日前よりはましになったんじゃないかね。
hirokuma/AndroidTwoSpinners at 6136b8111d9978b800b4a68d1d90d3775cc1b42a
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。