最初のステップが完了したと思います。私にとって、必要なものを視覚化して引き出すことができれば、次のステップは、最初にコードに飛び込むことです. 最初にいくつかのインターネット検索を行うことを恐れないでください。
まず第一に、新しい Android 開発者は、Android のライフサイクルを調べて、どこで何が起こっているかを理解することを常にお勧めします。Activity
アプリケーションでは、 とは何か、 で何が起こるかを理解する必要がありますonCreate()
。いくつか読んで、Androidアクティビティとは何かを理解してください。
次に、Android Layoutsの操作について見ていきます。これは、画面に何かを配置するのに役立ちます。デフォルトでは、Eclipse で新しい Android アプリケーションを作成すると、基本的な layout.xml ファイルが生成されます。これを、入力コントロールを画面にドロップするための基本的なフレームワークとして使用します。探している特定の「ドロップダウン」機能は、スピナーコントロールにあります。
画面に が表示されたら、 に割り当てる値の をSpinner
作成して入力できます。これは、それを埋めるために に直接関連付けられます。Array
ArrayAdapter
ArrayAdapter
Spinner
Android Developers サイトを使用してください。非常に便利です。SDK にもチュートリアルとサンプル コードがあります。
この回答には、開始するための用語、リンク、および指示がたくさん含まれている必要があります。
アップデート:
より具体的に回答を拡大したいと思いますが、もう少し情報が必要だと思います。たとえば、特定の場所からこれらの名前を取得していますか (つまり、デバイス自体ですか?)。String Array
いずれにせよ、名前は aまたは のいずれかのタイプの配列の形式で配置する必要がありArrayList
ます。これは、それがどのようにArrayAdapters
機能し、オブジェクトArrayAdapters
を移入するかという理由だけです。Spinner
つまり、私が言おうとしているのは、名前を取得する方法に関係なく、それらを何らかのタイプの配列に整理して、それらを に配置する必要があるSpinner
ということです (もちろん、単純に保ちたい場合)。
ここで、名前を配列に入れ、 をクリックしSpinner
てそれらをすべて表示できるようになったら、その下に表示したいデータを取得するイベントをトリガーします。2 つの方法のうちの 1 つでこれを行うことをお勧めします。から名前を選択しSpinner
、ボタンをクリックして、表示したい他の情報の検索を開始できます。これは、ネットワーク リソースから名前に関するデータを取得する場合に適したソリューションです。実際のデバイス (構成した SQLite DB または Android システム DB) から選択した名前に関連付けられたデータを取得する場合はonSelectionChanged
、Spinner
. この答えに似たものを使用してそれを行うことができます:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Spinner spinner = (Spinner)findViewById(R.id.mySpinner);
// create your arrayadapter of names and then set it to your spinner
// then add a lister to look for a change
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// update your view with the information for the selected user
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// do something
}
});
}
スピナーに変更を登録できたら、クエリを開始して、表示する情報を決定できます。名前に関連付けられたすべての情報を使用してカスタム DB を作成する場合は、独自の DB ハンドラーを作成する必要があります。ネットワーク リソースから情報を取得する場合は、ネットワーク操作をバックグラウンド スレッドまたはAsyncTaskに置くようにしてください。Android デバイス (連絡先レコードなど) から情報を取得する場合は、Android の組み込み関数、ライブラリ、および API を使用してください。ネットワーク接続に依存するのではなく、すべてをローカライズしたままにしようとします。
すべての情報を取得したら、動的にレイアウトを作成して現在のビューに追加するか、1 つのレイアウトを時々変更して表示および非表示にすることができます。これらの解決策はどちらも完全に合理的であり、一方が他方よりも優れているとは思いません。以前は、オブジェクトを非表示にして、必要なときに表示するだけのファンでしたが、必要なときにその場でプログラムでレイアウトを作成するようになりました。ただし、これは新しい Android 開発者にとっては少し難しいように思われるため、XML レイアウトを表示または非表示にする大ざっぱな if/else ステートメントがあっても気にしないでください。
とにかく、うまくいけば、すべてが役に立ちます!! アンドロイドへようこそ!