0

と の簡単なダイアログが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);
}
4

0 に答える 0