web-dev-qa-db-fra.com

Android: Changer la vue Spinner Dropdown

Je souhaite utiliser le type ci-dessous de vue Spinner Dropdown.enter image description here Pour ce type de vue en rotation. J'ai écrit ce code.

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.spinner, Android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item);
    spinner_obj.setAdapter(adapter);

J'ai reçu ceci de http://developer.Android.com/guide/topics/ui/controls/spinner.html Mais ce que j'ai obtenu est,enter image description here

S'il vous plaît, donnez-moi le meilleur moyen de le faire ....

9
Sridhar

C'est un peu comme revivre un ancien message mais la réponse acceptée est loin d'être idéale. La bonne façon de faire est de régler le spinner en mode déroulant dans votre layout xml:

<Spinner 
    Android:id="@+id/my_spinner"
    ...
    Android:spinnerMode="dropdown"/>

Les options disponibles sont "dialogue" et "menu déroulant".

30
Stephen Kidson

Votre application tourne sur un ancien thème.

Si vous utilisez Android 4.2, définissez le thème de l'application Android (dans le fichier manifeste) sur 

 Android:theme="@Android:style/Theme.Holo.Light"

OR

 Android:theme="@Android:style/Theme.Holo.Light.DarkActionBar"
8
Vipul Shah

vous courez peut-être en dessous de 4.0, 4.0 vous montrera une liste déroulante comme votre image

2
Sanket Kachhela

Pour l'interface graphique, utilisez HoloEverywhere. https://github.com/Prototik/HoloEverywhere HoloEverywhere est la meilleure voie à suivre si vous voulez un thème Holo sur un ancien Android, puis sur 4.0.

Et pour le menu déroulant, utilisez Android: spinnerMode = "menu déroulant" dans la présentation, comme l'a mentionné Stephen Kidson.

1
Mikael Svensson

Vous pouvez utiliser un popup comme ci-dessous:

           spinner=(EditText)findViewById(R.id.txt_Spinner);


        spinner.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                p = new Point();
                p.x = location[0]+(v.getHeight());
                p.y = location[1]+v.getHeight();

                if (p != null)
                    showPopup(statusActivity.this, p);

                System.out.println("show popup");
            }
        });




    // The method that displays the popup.
    private void showPopup(final Activity context, Point p) {
        int popupWidth = 300;
        int popupHeight = 500;

        // Inflate the popup_layout.xml
        LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.popup);
        LayoutInflater layoutInflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View layout = layoutInflater.inflate(R.layout.popup_layout, viewGroup);

        // Creating the PopupWindow
        popup = new PopupWindow(context);
        popup.setContentView(layout);
        popup.setWidth(popupWidth);
        popup.setHeight(popupHeight);
        popup.setFocusable(true);

        // Some offset to align the popup a bit to the right, and a bit down, relative to button's position.
        int OFFSET_X = 00;
        int OFFSET_Y = 00;

        // Clear the default translucent background
        popup.setBackgroundDrawable(new BitmapDrawable());

        // Displaying the popup at the specified location, + offsets.
        popup.showAtLocation(layout, Gravity.NO_GRAVITY, p.x + OFFSET_X, p.y + OFFSET_Y);
        ((TextView)layout.findViewById(R.id.textView2)).setClickable(true);
        ((TextView)layout.findViewById(R.id.textView3)).setClickable(true);
        ((TextView)layout.findViewById(R.id.textView4)).setClickable(true);
        ((TextView)layout.findViewById(R.id.textView5)).setClickable(true);
        ((TextView)layout.findViewById(R.id.textView6)).setClickable(true);
        ((TextView)layout.findViewById(R.id.textView7)).setClickable(true);
        ((TextView)layout.findViewById(R.id.textView8)).setClickable(true);
        ((TextView)layout.findViewById(R.id.textView9)).setClickable(true);

    }

and popup.xml

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/popup"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:background="@drawable/popup_bg"
    Android:orientation="vertical" >

    <TextView
        Android:id="@+id/textView1"
        style="@style/text_orange_heading"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="Select Status"
        Android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        Android:id="@+id/textView2"
        style="@style/text_blue_contains"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:onClick="onClick"
        Android:clickable="true"
        Android:drawableBottom="@drawable/line_white"
        Android:tag="Sleeping"
        Android:text="Sleeping" />

    <TextView
        Android:id="@+id/textView3"
        style="@style/text_blue_contains"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:onClick="onClick"
        Android:clickable="true"
        Android:drawableBottom="@drawable/line_white"
        Android:tag="Available"
        Android:text="Available" />

    <TextView
        Android:id="@+id/textView4"
        style="@style/text_blue_contains"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:onClick="onClick"
        Android:clickable="true"
        Android:drawableBottom="@drawable/line_white"
        Android:tag="Busy"
        Android:text="Busy" />

    <TextView
        Android:id="@+id/textView5"
        style="@style/text_blue_contains"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:onClick="onClick"
        Android:clickable="true"
        Android:drawableBottom="@drawable/line_white"
        Android:tag="At work"
        Android:text="At work" />

    <TextView
        Android:id="@+id/textView6"
        style="@style/text_blue_contains"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:onClick="onClick"
        Android:clickable="true"
        Android:drawableBottom="@drawable/line_white"
        Android:tag="Battery charge low"
        Android:text="Battery charge low" />

    <TextView
        Android:id="@+id/textView7"
        style="@style/text_blue_contains"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:onClick="onClick"
        Android:clickable="true"
        Android:drawableBottom="@drawable/line_white"
        Android:tag="In meeting"
        Android:text="In meeting" />

    <TextView
        Android:id="@+id/textView8"
        style="@style/text_blue_contains"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:onClick="onClick"
        Android:clickable="true"
        Android:drawableBottom="@drawable/line_white"
        Android:tag="TMS me later"
        Android:text="TMS me later" />

    <TextView
        Android:id="@+id/textView9"
        style="@style/text_blue_contains"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:onClick="onClick"
        Android:clickable="true"
        Android:drawableBottom="@drawable/line_white"
        Android:tag="At the toilet"
        Android:text="At the toilet" />

    <EditText
        Android:id="@+id/textCustomize"
        style="@style/text_blue_contains"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"
        Android:tag="Customize"
        Android:text="Customize" />

</LinearLayout>
1
Parker