标签: android-spinner

如何在Android中捕获针对微调器的onClick事件

我想在用户选择微调器值时捕获onClick事件.

我已经尝试实现OnClickListener并使用以下代码:

@Override
public void onClick(final View view) {
  if (view == countrySpinner) {
    Toast.makeText(this, "Override OK!", 3);
  }
}
Run Code Online (Sandbox Code Playgroud)

和绑定:

countrySpinner.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)

这编译,但我得到RuntimeException建议我使用OnItemClickListener而不是OnClickListener一个AdapterView.

如何捕获onClick事件?

android android-widget android-spinner

10
推荐指数
2
解决办法
3万
查看次数

如何用int值填充Spinner

正如我过去常常填充Spinner一样,我通常使用SpinnerAdapter然后通常在资源中有项目来填充它.

我目前有一个不同的查询,我在我的代码中有一个int的用户输入,我希望我的微调器填充数字到用户选择的数字.因此,如果用户输入数字"5",则将其保存为int变量.然后我希望Spinner显示1,2,3,4,5作为选择.

我真的不确定如何处理这个问题.

谢谢,奥利

int android android-spinner

10
推荐指数
1
解决办法
2万
查看次数

Spinner不应用dropDownSelector属性

我正在使用微调器并想添加微调器 - 改变行为取决于状态(聚焦,按下)

示例项目在这里https://github.com/vovs/spinner_issue

我的代码:

activity_main.xml中

<Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:spinnerMode="dropdown"
        android:dropDownSelector="@drawable/spinner_state" />
Run Code Online (Sandbox Code Playgroud)

spinner_state.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@color/black" />
    <item
        android:state_pressed="true"
        android:state_enabled="true"
        android:drawable="@color/red" />
    <item
        android:state_focused="true"
        android:state_enabled="true"
        android:drawable="@color/red" />
    <item
        android:state_enabled="true"
        android:drawable="@color/gray" />
</selector>
Run Code Online (Sandbox Code Playgroud)

AndroidManifest:

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
Run Code Online (Sandbox Code Playgroud)

所以,如果我在模拟器Android 4.0.2 API 14中运行app并尝试选择一些项目或使用鼠标滚轮滚动没有任何效果,我在选择器中设置(当按下或滚动时 - 项目应该是红色的,但它是蓝色 - ICS颜色的默认值).

对于Android 2.2 API 8,当使用滚轮按下或滚动时(在这种情况下状态为聚焦)颜色为黄色[橙色](Android 2.2的默认颜色)

如何为微调器启用选择器?

在此输入图像描述

android spinner android-spinner

10
推荐指数
1
解决办法
2万
查看次数

android-spinnerwheel - 单个选项卡可绘制

我想在WheelHorizo​​ntalView(包含在库中android-spinnerwheel)中设置单独的选项卡宽度和高度.并将该选项卡设置为支持选定/按下状态的drawable.

这可以在ViewPagerIndicator(with vpiTabPageIndicatorStyle)中完成,但我不能使用这个库.(这就是我用它做的vpiTabPageIndicatorStyle:http://pastebin.com/wB4vGMyJ)

我试过的是改变selectionDivider这个drawable:

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/drawable_daychooser_item_pressed" />
    <item android:state_selected="true" android:drawable="@drawable/drawable_daychooser_item_selected" />
    <item android:drawable="@drawable/drawable_daychooser_item_default" />
</selector>
Run Code Online (Sandbox Code Playgroud)

但那不起作用.我已经调查了wheel__attrs.xml但是我找不到另一个格式为drawable(引用)的属性.

这就是现在的情况:

之前

这就是我想要的:

后

如果你想知道为什么我从这里切换ViewPagerIndicatorandroid-spinnerwheel这里:ViewPagerIndicator - 将TabPageIndicator设置为中心

我也在android-spinnerwheelGitHub页面上问过这个问题,但是经过4个月没有任何回复我决定在这里问一下.

android android-library android-spinner android-drawable

10
推荐指数
1
解决办法
784
查看次数

Android中的Spinner未选择位置0

我创建了一个有三个项目的微调器

日常

每周

每月一次

我在我的java文件中做了以下内容:

navSpinner = new ArrayList<SpinnerNavItem>();
        navSpinner.add(new SpinnerNavItem(getResources().getString(R.string.dailyview)));
        navSpinner.add(new SpinnerNavItem(getResources().getString(R.string.weekview)));
        navSpinner.add(new SpinnerNavItem(getResources().getString(R.string.monthview)));

        adapter = new TitleNavigationAdapter(getActivity().getApplicationContext(), navSpinner);
        mSpinner = (Spinner) rootView.findViewById(R.id.spinner);
        mSpinner.setAdapter(adapter);
        mSpinner.setOnItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)

OnItemSelected方法(Implements AdapterView.OnItemSelectedListener)

public void onItemSelected(AdapterView<?> parentView, View v, int position, long id) {

        Log.e("Position", "= " + position);

        if (mNaviFirstHit)
        {
            mNaviFirstHit = false;
        }
        else
        {

            Fragment fragment = null;
            switch (position) {
                case 0:

                    Log.e("Week", "= " + position);
                    break;

                case 1:

                    backspace = 1;

                    Log.e("Week", "= " + position);

                    break;

                case …
Run Code Online (Sandbox Code Playgroud)

android android-spinner

10
推荐指数
1
解决办法
3449
查看次数

如何改变打开的微调器的位置?

我希望旋转器下拉菜单在旋转器本身正下方打开.例如:

在此输入图像描述

如何设置微调器下拉的位置?

android spinner android-spinner drop-down-menu

9
推荐指数
2
解决办法
2万
查看次数

如何在ActionBarSherlock导航微调器中包装文本内容

我正在尝试包装ActionBar导航微调器的文本内容(我正在使用ActionBar Sherlock).似乎我的微调器占用了下拉列表中包含的项目的宽度.

如何使微调器中的选定项目根据其宽度"包裹"?可以在GMaps动作条旋转器中找到一个示例.

android spinner android-layout android-spinner actionbarsherlock

9
推荐指数
1
解决办法
1895
查看次数

旋转器下拉从旋转器顶部开始

问题是Spinner下拉列表从Spinner的顶行开始,但它应该从底线开始Spinner

正常状态

在此输入图像描述

点击后

在此输入图像描述

Spinner xml代码

<Spinner
    android:id="@+id/spnSelectLanguage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="8dp"
    android:layout_marginTop="16dp"
    android:spinnerMode="dropdown"
    android:background="@drawable/spn_lang_dropdown_selector"
    android:gravity="center_vertical"
    android:popupBackground="#EAEAEA"
    android:textColor="#54a4db" />
Run Code Online (Sandbox Code Playgroud)

Spinner spnSelectLanguage = (Spinner)rootView.findViewById(R.id.spnSelectLanguage);
    ArrayAdapter<String> adapterLanguage= new ArrayAdapter<String> (context,R.layout.layout_lng_spinner_item,new String[]{"English","Arabic"});
    adapterLanguage.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spnSelectLanguage.setAdapter(adapterLanguage);
Run Code Online (Sandbox Code Playgroud)

Style.xml

<style name="SpinnerStyle" parent="android:style/Widget.ListView.DropDown">
    <item name="android:divider">@color/grey</item>
    <item name="android:dividerHeight">1dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android spinner android-spinner

9
推荐指数
2
解决办法
8547
查看次数

使用TextInputLayout和Spinner进行对齐的问题

我对TextInputLayout和Spinner有一个对齐问题,我希望Spinner下划线与TextInputLayout内的EditText下划线对齐.这就是我正在做的事情:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="bottom">

    <android.support.design.widget.TextInputLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <EditText
            android:id="@+id/txt_discipline_code"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/lbl_input_discipline_code"/>
    </android.support.design.widget.TextInputLayout>

    <Spinner
        android:id="@+id/spnnr_color_discipline_register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/Base.Widget.AppCompat.Spinner.Underlined">

    </Spinner>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

但是Spinner 有点低于.有人可以帮帮我吗?提前致谢.

编辑:

这就是我想要的: EditText的Y下划线等于Spinner的Y下划线

我达到此对齐设置Spinner layout_marginBottom为1.5dp:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="bottom">

    <android.support.design.widget.TextInputLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <EditText
            android:id="@+id/txt_discipline_code"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Code"/>
    </android.support.design.widget.TextInputLayout>

    <Spinner
        android:id="@+id/spnnr_color_discipline_register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/Base.Widget.AppCompat.Spinner.Underlined"
        android:layout_marginBottom="1.5dp">

    </Spinner>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

但我担心这在其他设备上不能正常工作,尺寸不同.这是唯一的解决方案吗?

android android-layout android-spinner android-textinputlayout

9
推荐指数
1
解决办法
2697
查看次数

Jetpack Compose 中的下拉按钮/轮式选取器/微调器

Jetpack Compose 中是否有针对诸如 Spinner/Wheel Picker 或 Dropdown Button 之类的视觉组件的标准实现?

android android-spinner android-jetpack-compose android-compose-dropdownmenu

9
推荐指数
1
解决办法
4430
查看次数