と の簡単なダイアログがEditText
ありSpinner
ます... スピナーには 2 つの項目しかなく、ダイアログの一番下にあります...
ドロップダウン モードを使用している場合、ドロップダウン リストに 1 つの項目のみが表示されます。ダイアログ モードを使用している場合、すべての項目が表示されます...
誰かがその解決策を知っていますか?
これが私の単純なレイアウトです - 削除すると正しく動作しませんandroid:spinnerMode="dialog"
...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/etInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<Spinner
android:id="@+id/spItems"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:spinnerMode="dialog" />
</LinearLayout>
これがDialogコードです。特別なことは何もありません...
public PromptAndSpinnerDialog(Context context, int title, int message, String text, int selectedIndex, Integer[] items, int okButtonID)
{
super(context);
theContext = context;
setTitle(title);
if (message > 0)
setMessage(message);
init(text, selectedIndex, items, okButtonID);
}
public PromptAndSpinnerDialog(Context context, int title, String message, String text, int selectedIndex, Integer[] items, int okButtonID)
{
super(context);
theContext = context;
setTitle(title);
setMessage(message);
init(text, selectedIndex, items, okButtonID);
}
private void init(String text, int selectedIndex, Integer[] items, int okButtonID)
{
View v = LayoutInflater.inflate(getContext(), R.layout.dialog_prompt_and_spinner);
setView(v);
setPositiveButton(okButtonID, this);
setNegativeButton(R.string.cancel, this);
getReferences(v);
etInput.setText(text);
etInput.selectAll();
String[] strings = new String[items.length];
for (int i = 0; i < items.length; i++)
strings[i] = theContext.getString(items[i]);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(theContext, R.layout.sherlock_spinner_item, strings);
adapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
spItems.setAdapter(adapter);
if (selectedIndex != -1)
spItems.setSelection(selectedIndex);
}