简体   繁体   中英

Place a Spinner in Action bar

My question is simple, how would you go about to set a Spinner/dropdown list in the Action bar (in place of the title)?

I know there are other similar questions on here but all the answers I could find were very old and used deprecated code or linked to some guide in the Android docs that isn't there anymore.

try with this one

call this from activity on create method and implement AdapterView.OnItemSelectedListener also.

   String[] weeks = {"Sunday", "Monday", "Tuesday", "Wednesday", "thursday","Sunday"}

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.custom_app_bar_spinner);

    Spinner spinner = (Spinner) findViewById(R.id.spinnerMethodInterviews);
    Spinner spinnerSecond = (Spinner) findViewById(R.id.spinnerMethodSecond);
    ArrayAdapter<String>   spinnerAdapter = new ArrayAdapter(this,
            R.layout.custom_title, android.R.id.text1, weeks);

    spinnerAdapter.setDropDownViewResource(R.layout.cutom_spinner);
    spinner.setAdapter(spinnerAdapter);
    spinnerSecond.setAdapter(spinnerAdapter);
    spinner.setOnItemSelectedListener(this);
    spinnerSecond.setOnItemSelectedListener(this);

main_Activity.xml

   <?xml version="1.0" encoding="utf-8"?>
  <android.support.constraint.ConstraintLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.constraint.ConstraintLayout
    android:id="@+id/view_top"
    android:layout_width="0dp"
    android:layout_height="50dp"
    app:layout_constraintTop_toTopOf="parent"
    android:background="@color/colorAccent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent">

    <Spinner
        android:id="@+id/spinnerMethodInterviews"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        app:layout_constraintStart_toStartOf="parent"
        android:spinnerMode="dropdown"/>

    <Spinner
        android:id="@+id/spinnerMethodSecond"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:spinnerMode="dropdown"/>

</android.support.constraint.ConstraintLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintTop_toBottomOf="@+id/view_top"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    >
</android.support.v7.widget.RecyclerView>

</android.support.constraint.ConstraintLayout>

custom_spinner.xml

   <CheckedTextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:ellipsize="marquee"
android:singleLine="true"
android:textColor="@android:color/white" />

custom_title.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@android:id/text1"
style="?attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:ellipsize="marquee"
android:singleLine="true"
android:textColor="@android:color/white" />

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM