まず、私の英語で申し訳ありません。あまり良くないことはわかっていますが、理解していただければ幸いです。私はこれを数時間調べてきました。spinnerMode パラメータを「dialog」に設定して、レイアウト ファイルにスピナーを作成しました。
<Spinner
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/llBarra_list"
android:drawSelectorOnTop = "true"
android:prompt="@string/spinner_title"
android:background="@drawable/btn_dropdown_normal"
android:spinnerMode="dialog"/>
ユーザーがスピナーを押すと、次に従って、1 つの ArrayList で定義されたいくつかのオプションがダイアログに取り込まれます。
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity().getBaseContext(),android.R.layout.simple_spinner_item, listaHashes);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(dataAdapter);
spinner2.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
String text = listaHashes.get(arg2);
lblHash.setText(text);
ArrayList<String> tweetsEsteHash= new ArrayList<String>();
tweetsEsteHash.add(text);
receiveTweets(tweetsEsteHash);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
ダイアログは親の幅と高さを埋めません。これは私の意図では問題ありません。ユーザーがダイアログの外側に触れると、ダイアログが閉じる必要があります。カスタム スピナー ダイアログでカスタム スピナーを作成する必要がありますか、それともこれを実現するために使用できるオプションはありますか?