2011-07-15 22 views
0

私は、ユーザーが車両のYear、Make、およびModelを選択する必要があるアプリケーションに取り組んでいます。ユーザーが年を選択すると、メイクのリストには、その年に存在するもののみが含まれます。メイクが選択されると、モデルのリストには年を基に作成され、makeされます。Android Spinnerデザインヘルプ

私は最初Spinnersを使用しましたが、問題はAndroid Spinnerの空の初期選択ができないため、1年が選択されるまでメーカーとモデルをロードしたくないということです。私はまた、年でない項目をリストに含めることを望んでいません。

TheresはSpinnerが初期化されたときにonItemSelected()が呼び出されるため、システムが項目を選択しているかどうかを判断しにくい、またはユーザーが項目を選択している場合にも問題があります。私は、ユーザーが項目を選択した後に作成するだけをロードするだけです。私はonItemSelectedをオーバーライドしてカスタムアダプタを使用しようとしましたが、ユーザが項目を選択するたびに、そのメソッドは2回呼び出されます。私が思いついた解決策は、ハックのように見えて、磨かれていないと感じる。

私はオンラインで多く見てきましたが、解決策は見つかりませんでした。

Spinnerがこの場合に動作するようにする方法はありますか、それとももっと良いデザインがありますか?

答えて

2

「スピナー」やメニューは、あなたの指で、モバイルデバイス上で、彼らが何よりも、マウスを使ってWebページ上のように非常に良く機能し、ドロップダウン...

あなたは、ユーザーが最初の年を選択すると、ではないだろうユーザーに最初にmakeを選択させる方が良いでしょうか?それが通常どおりに行われているかは確かですが、AutoCompleteTextViewを使用して、ユーザーがmakeを入力できるようにすることもできます(10億のリストから選択する必要はありません)。タイピング。

モデルの場合、同じことをする可能性がありますし、今年は年を入力してください...数字パッドを表示させてください(<EditText android:inputType="number" ... />)。 60年のリストからスピナーの年。

+2

いつも一年前です。年はメイク/モデルを動かすものです。あなたがmake/modelルートに行ったら、あなたは奇妙な階層的な悪夢を手に入れます。 –

+0

@ aaron-mciver [autotrader](http://www.autotrader.com)は最初にモデルを作成しますが、私は修正を行います。ほとんどの自動車部品のサイトは年をとっており、今私はそれについて考えることができます。なぜ... –

0

私はこれをテストするためのコードは試していませんが、これを解決するための最初の考えは、MakeとModelのスピナーに1つのダミー値を入力して非表示にすることです。次に、ユーザーが年を選択すると、データストアに関連するデータを照会し、Makeスピナーを再設定して見えるようにします。その後、Modelスピナーで同じ操作を繰り返します。また、ユーザーが戻ってYearのスピナーやMakeのスピナーで最初の選択を変更した場合は、それらを非表示にする必要があります。