android-spinner 相关问题

微调器是一个控件/小部件,允许用户从组中选择一个项目,如下拉列表......

Dialog(Date) & Spinner(Dropdown) 可以被视为一个字符串吗?如何将其存入数据库?我尝试更多地解释我所面临的问题

我已经在数据库中为(对话框)日期创建了一个字符串,并为 Spinner(下拉)创建了一个字符串。我正在尝试将这两个存储在数据库中。但它似乎不起作用,因为这些不是字符串。但在

回答 2 投票 0

全屏 Android 应用程序中的微调器显示状态栏

我有一个Android应用程序。 我在 mainactivity.xml 中定义了一个名为 dd1 的微调器。 我在片段中定义了 onItemSelected 方法。 该应用程序全屏运行,即隐藏导航和...

回答 1 投票 0

Android 底部导航栏重叠 Spinner。设置微调器下拉高度/边距

我在从事 Android Honeycomb 项目时偶然发现了一个有趣的问题。如下图所示,在对话框中展开 Spinner 时,底部的导航栏

回答 3 投票 0

Android 中微调器的自定义布局

我正在开发一个Android应用程序,我必须为微调项目实现自定义布局。 我会实现这样的旋转器: 我有一个问题来实现“金箭头和边框&qu...

回答 2 投票 0

Android - 删除微调器下拉箭头

我只是想知道是否可以简单地删除微调器的下拉箭头?我的微调器背景布局中有一个可绘制箭头,但是系统默认箭头出现...

回答 4 投票 0

如何更改 Android 中的微调按钮颜色?

我正在尝试更改 Android 中的微调按钮颜色,但无法正常工作。有人可以帮忙吗? 我正在尝试更改 Android 中的微调器按钮颜色,但无法正常工作。有人可以帮忙吗? <Spinner android:id="@+id/spinner1" android:layout_width="200dp" android:layout_height="35dp" android:layout_marginTop="2dp" android:background="@null" android:layout_weight="1" android:layout_marginLeft="11dp" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" /> 你可以使用这个: Drawable spinnerDrawable = mySpinner.getBackground().getConstantState().newDrawable(); spinnerDrawable.setColorFilter(getResources().getColor(R.color.blue_m), PorterDuff.Mode.SRC_ATOP); if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { mySpinner.setBackground(spinnerDrawable); } else { mySpinner.setBackgroundDrawable(spinnerDrawable); } 我不是 Android 专家,但这对您有帮助吗?: Spinner 按钮使用九块图像 (http://www.aspose.com/java/imaging-component.aspx)。您需要以所有不同的分辨率制作九块图像,然后将其设置为微调器的背景。 参见: http://developer.android.com/tools/help/draw9patch.html 您可以像这样在 xml 中设置微调器背景颜色: android:background="YOUR_HEX_COLOR_CODE" 您还可以在后台设置可绘制对象 android:background=@drawable/my_spinner 这里有两个额外的链接: http://android-ui-utils.googlecode.com/hg/asset-studio/dist/nine-patches.html http://android-holo-colors.com/(如果您想要相同的形状,只是不同的颜色(并且有利于整体主题) 使用 XML 对我有用的是:android:backgroundTint="hex_color"。 如果您使用带下划线样式的微调器(例如@style/Widget.AppCompat.Spinner.Underlined),它还会更改线条颜色。

回答 5 投票 0

Android:以编程方式从 Java 代码填充微调器

如何通过 Java 代码以编程方式填充微调器? 我的布局中有一个微调器,如下所示: 如何通过 Java 代码以编程方式填充微调器? 我的布局中有一个旋转器,如下所示: <Spinner android:id="@+id/consultation_deseases" android:layout_width="@dimen/bigSpinnerWidth" android:layout_height="@dimen/bigSpinnerHeight" android:prompt="@string/disease_prompt" /> 使用 java 代码,我需要创建适配器并添加项目。 // you need to have a list of data that you want the spinner to display List<String> spinnerArray = new ArrayList<String>(); spinnerArray.add("item1"); spinnerArray.add("item2"); ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_spinner_item, spinnerArray); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner sItems = (Spinner) findViewById(R.id.spinner1); sItems.setAdapter(adapter); 还要找出选择了什么,你可以这样做 String selected = sItems.getSelectedItem().toString(); if (selected.equals("what ever the option was")) { } 这是一个完全编程的示例: 初始化一个 Spinner。 通过字符串列表填充数据。 调整微调器的大小并将其添加到我的视图中。 设置 Spinner 字体的格式(字体大小、颜色、填充)。 清除微调器。 向微调器添加新值。 重画微调器。 我正在使用以下类变量: Spinner varSpinner; List<String> varSpinnerData; float varScaleX; float varScaleY; A - 初始化并渲染 Spinner(varRoot 是指向我的主要 Activity 的指针): public void renderSpinner() { List<String> myArraySpinner = new ArrayList<String>(); myArraySpinner.add("red"); myArraySpinner.add("green"); myArraySpinner.add("blue"); varSpinnerData = myArraySpinner; Spinner mySpinner = new Spinner(varRoot); varSpinner = mySpinner; ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(varRoot, android.R.layout.simple_spinner_item, myArraySpinner); spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // The drop down vieww mySpinner.setAdapter(spinnerArrayAdapter); B - 调整大小并将微调器添加到我的视图中: FrameLayout.LayoutParams myParamsLayout = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); myParamsLayout.gravity = Gravity.NO_GRAVITY; myParamsLayout.leftMargin = (int) (100 * varScaleX); myParamsLayout.topMargin = (int) (350 * varScaleY); myParamsLayout.width = (int) (300 * varScaleX);; myParamsLayout.height = (int) (60 * varScaleY);; varLayoutECommerce_Dialogue.addView(mySpinner, myParamsLayout); C - 创建 Click 处理程序并使用它来设置字体。 mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int myPosition, long myID) { Log.i("renderSpinner -> ", "onItemSelected: " + myPosition + "/" + myID); ((TextView) parentView.getChildAt(0)).setTextColor(Color.GREEN); ((TextView) parentView.getChildAt(0)).setTextSize(TypedValue.COMPLEX_UNIT_PX, (int) (varScaleY * 22.0f) ); ((TextView) parentView.getChildAt(0)).setPadding(1,1,1,1); } @Override public void onNothingSelected(AdapterView<?> parentView) { // your code here } }); } D - 使用新数据更新微调器: private void updateInitSpinners(){ String mySelected = varSpinner.getSelectedItem().toString(); Log.i("TPRenderECommerce_Dialogue -> ", "updateInitSpinners -> mySelected: " + mySelected); varSpinnerData.clear(); varSpinnerData.add("Hello World"); varSpinnerData.add("Hello World 2"); ((BaseAdapter) varSpinner.getAdapter()).notifyDataSetChanged(); varSpinner.invalidate(); varSpinner.setSelection(1); } } 我在 updateInitSpinners 中无法解决的问题是执行 varSpinner.setSelection(0);并自动激活自定义字体设置。 更新: 这个“丑陋”的解决方案解决了 varSpinner.setSelection(0);问题,但我对此不太满意: private void updateInitSpinners(){ String mySelected = varSpinner.getSelectedItem().toString(); Log.i("TPRenderECommerce_Dialogue -> ", "updateInitSpinners -> mySelected: " + mySelected); varSpinnerData.clear(); ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(varRoot, android.R.layout.simple_spinner_item, varSpinnerData); spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); varSpinner.setAdapter(spinnerArrayAdapter); varSpinnerData.add("Hello World"); varSpinnerData.add("Hello World 2"); ((BaseAdapter) varSpinner.getAdapter()).notifyDataSetChanged(); varSpinner.invalidate(); varSpinner.setSelection(0); } } 希望这有帮助...... 我将关注公共时期的数字经济事宜。公共部门定期享受国家自主权保障。这包括在互联网上的主要研究、观点和声誉,以及在网络上的渐进位置,以促进公共事业的初步结果。我们以预先准备的格式编辑了相关新闻,以期为该领域的利益相关者提供一些建议。如果我确认了电话,则可以通过明确的方式联系该过程中的功能。谢谢

回答 3 投票 0

在繁忙的 ListView 中更新 TextView 而不会失去 Spinner 焦点

我使用自定义用户速率对传感器进行采样(这使 ListView 忙碌),并在列表视图中显示值,因此我有一个自定义列表视图,其中包含 3 个文本视图(用于 x、y 和 z 值)和一个旋转...

回答 2 投票 0

Android:Spinner:在代码中设置 ArrayAdapter 不希望调用 onItemSelected,仅在用户单击 spinner 时调用

Android Spinner:当我在代码中设置ArrayAdapter时,Android调用onItemSelected。仅当用户单击微调项目时才可以调用吗? 听众 绑定.spinner.onItemSelectedListener = 对象:

回答 1 投票 0

ConstraintLayout 中的两个水平旋转器

我试图在 ConstraintLayout 中将两个微调器彼此相邻放置。但是,当我在真实设备上运行该应用程序时,其中一个旋转器会扩展到屏幕末端并隐藏另一个旋转器...

回答 1 投票 0

如果我有 2 个微调器,其中一个处于打开状态,如果我尝试打开另一个,则第一次单击时它不会打开。有办法解决这个问题吗? [已关闭]

我在线性布局中几乎没有旋转器。当我单击第一个打开它时,我希望能够单击另一个,然后单击关闭第一个并打开第二个。 但事实并非如此

回答 2 投票 0

如果我有 2 个旋转器,其中一个打开,如果我另一个则不打开。有办法解决吗?

在此输入图像描述 我在线性布局中有一些旋转器。当我单击一个打开它时,我希望能够单击另一个,然后单击关闭第一个并打开第二个...

回答 1 投票 0

Spinner 不应用 dropDownSelector 属性

我正在使用微调器并想要添加微调器 - 改变行为取决于状态(聚焦、按下) 示例项目在这里 https://github.com/vovs/spinner_issue 我的代码: 活动主文件 我正在使用微调器并想要添加微调器 - 改变行为取决于状态(聚焦、按下) 示例项目在这里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" /> 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> AndroidManifest: <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> 因此,如果我在模拟器 Android 4.0.2 API 14 中运行应用程序并尝试选择某些项目或使用鼠标滚轮滚动,则不会有任何效果,我在选择器中设置(当按下或滚动时 - 项目应该是红色的,但它为蓝色 - ICS 颜色的默认值)。 对于 Android 2.2 API 8,当按下或使用滚轮滚动时(在这种情况下状态为焦点)颜色为黄色[橙色](Android 2.2 的默认颜色) 如何启用微调器的选择器? 也是一个官方错误... https://code.google.com/p/android/issues/detail?id=24922 有什么帮助: <resources> <style name="Theme.MyTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:dropDownListViewStyle">@style/Theme.MyListView</item> </style> <style name="Theme.MyListView" parent="@android:style/Widget.Holo.Light.ListView"> <item name="android:listSelector">@drawable/orange_list</item> </style> </resources> 祝你好运! <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@color/lighter_gray_no_transparent" /> <item android:state_selected="true" android:drawable="@color/lighter_gray_no_transparent" /> <item android:state_pressed="true" android:drawable="@color/lighter_gray_no_transparent" /> <item android:drawable="@android:color/transparent"/> </selector> <color name="lighter_gray_no_transparent">#FFDDDDDD</color> 为您的项目视图设置背景选择器,仅此而已。为我工作。 颜色alpha值必须为FF,否则会显示橙色背景,左边一个颜色值是#FFDDDDDD,右边一个是#55DDDDDD 可能还有其他方法,但这是我从使用其中一个生成器中了解到的。 在指向您的可绘制对象的 res/values/styles.xml 中声明您自己的微调器样式。 <style name="myCustomSpinner" parent="android:Widget.Holo.Light.Spinner"> <item name="android:background">@drawable/spinner_state</item> </style> 创建res/values/themes.xml并声明继承当前主题的您自己的主题。在此主题中,为您要修改的每个属性添加一个项目,并将其指向上一步中的自定义样式。我认为如果您愿意,这可以放入样式文件中,但由于生成器将它们分开,所以我也照着做。 <style name="myCustomTheme" parent="android:Theme.Light"> <item name="android:dropDownSpinnerStyle">@style/myCustomSpinner</item> </style> 在您的 AndroidManifest 中,将 android:theme="@style/myCustomTheme" 添加到起始 application 标签。 您的 parent 值将取决于项目的设置方式,我认为这将决定项目中旋转器的样式,而不仅仅是一个。尝试一下,让我知道你得到了什么。 这是另一个类似于 es0329 给出的解决方案: <style name="Base.Theme.SpinnerDemo" parent="Theme.Material3.DayNight.NoActionBar"> <item name="android:dropDownListViewStyle">@style/My.Theme.Spinner</item> </style> <style name="My.Theme.Spinner" parent= "android:Widget.ListView"> <item name="android:divider">@null</item> <item name="android:listSelector">@drawable/spinner_selector</item> </style> 这是我对其如何以及为何起作用的解释。 为什么android:dropDownSelector不起作用? 这一切都取决于我们单击微调器时发生的情况。单击后,它将经历一个创建DropDownListView的过程。 在创建过程中,它将使用内置属性R.attr.dropDownListViewStyle来创建AbsListView。 然后,AbsListView 将从 R.styleable.AbsListView_listSelector attr 中提取可绘制对象,这将成为选择器: final Drawable selector = a.getDrawable(R.styleable.AbsListView_listSelector); if (selector != null) { setSelector(selector); } 因此,我们赋予 Spinner 的 android:dropDownSelector 对于为弹出窗口创建的 AbsListView 没有任何影响。 这就是为什么为了实际设置选择器,我们需要更改主题中的android:listSelector。 为什么使用android:Widget.ListView作为主题的父主题? 如果我们查看我们的应用程序主题,我们应该发现类似这样的内容: <style name="{THEME_NAME}" parent="{PARENT_THEME}"> <item name="dropDownListViewStyle">?android:attr/dropDownListViewStyle</item> <item name="android:dropDownListViewStyle">@style/Widget.AppCompat.ListView.DropDown</item> </style> 在我的例子中,dropDownListViewStyle默认是@style/Widget.AppCompat.ListView.DropDown,它继承自android:Widget.ListView: <style name="Base.Widget.AppCompat.ListView" parent="android:Widget.ListView"> <item name="android:listSelector">?attr/listChoiceBackgroundIndicator</item> </style> 所以为了不搞乱其他设置,我决定使用 android:Widget.ListView 作为父级并更改 android:listSelector 的属性。

回答 4 投票 0

如何处理所选项目上的多个旋转器?我不知道该怎么办

私有无效getData(){ //创建字符串请求 StringRequest stringRequest = new StringRequest(Config.DATA_URL, 新的 Response.Listener() { @欧维...

回答 2 投票 0

用第二个 AsyncTask 填充第二个微调器后,JSON id 位置发生了变化

我遇到一个问题,我真的很困惑,做了这么多调试,但仍然无法解决问题。 id_kecamatan =categoriesList.get(position).getId();当第二个旋转器

回答 1 投票 0

显示加载/进度指示器的最佳方式?

当应用程序等待服务器响应时显示加载旋转器的最佳方式是什么? 这可以通过编程来完成吗?这样我就不必在 xml f 中添加加载微调器...

回答 6 投票 0

Android Spinner 自定义布局

我正在尝试使用自定义样式自定义我的微调器。 旋转器 我正在尝试使用自定义样式自定义我的微调器。 旋转器 <Spinner android:id="@+id/my_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/activity_vertical_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginTop="@dimen/activity_vertical_margin" app:layout_constraintTop_toBottomOf="@id/expense_amount" app:layout_constraintLeft_toRightOf="parent" app:layout_constraintRight_toLeftOf="parent" android:elevation="3dp" /> 这是我的 styles.xml 文件。 styles.xml <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:spinnerStyle">@style/AppTheme.spinnerStyle</item> <item name="android:spinnerDropDownItemStyle">@style/AppTheme.spinnerDropDownItemStyle</item> </style> <style name="AppTheme.spinnerStyle" parent="@android:style/Widget.Material.Light.Spinner"> <item name="android:textColor">@android:color/white</item> <item name="android:background">@color/colorPrimary</item> </style> <style name="AppTheme.spinnerDropDownItemStyle" parent="@android:style/Widget.Material.DropDownItem.Spinner"> <item name="android:textColor">@android:color/white</item> <item name="android:background">@color/colorPrimary</item> </style> 这给了我这样的旋转器: 我想添加一个下拉箭头。 当我将微调器更改为下拉箭头代码时,所有文本颜色和背景颜色都会丢失。 显示下拉箭头的微调器代码 <Spinner android:id="@+id/my_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/activity_vertical_margin" android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginTop="@dimen/activity_vertical_margin" app:layout_constraintTop_toBottomOf="@id/expense_amount" app:layout_constraintLeft_toRightOf="parent" app:layout_constraintRight_toLeftOf="parent" android:background="@android:drawable/btn_dropdown" /> 如何保留我的主题以及下拉箭头?? P.S. 我不太擅长在 Linux 机器上捕获屏幕截图。 这是 Android 的正常行为: Spinner 有自己的默认背景,当您使用 styles.xml 自定义它时,它会跟随并变成蓝色。然后在代码中再次将 Spinner 的 android:background 设置为 @android:drawable/btn_dropdown,因此它会覆盖您的样式,因为布局 xml 中的属性比样式中的属性具有更高的优先级。 您没有背景来显示下拉箭头,请使用这个: 第一个解决方案: <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Light" android:spinnerMode="dropdown" /> 在你的java文件中 spinner = (Spinner) view.findViewById(R.id.spinner); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinner_data, android.R.layout.simple_spinner_dropdown_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); 第二种解决方案 您将需要在 Spinner 外部使用relativelayout。将您的 <Spinner> 替换为: <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/spinner_bg"> <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Light" android:spinnerMode="dropdown" /> </RelativeLayout> 然后创建自定义背景并为微调器选择背景颜色: spinner_bg.xml <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="8dp" android:bottom="8dp"> <shape> <solid android:color="@color/colorPrimary" /> <corners android:radius="2dp"/> <stroke android:width="1dp" android:color="@color/colorPrimary" /> <padding android:top="16dp" android:bottom="16dp" android:left="8dp" android:right="16dp"/> </shape> </item> </layer-list>

回答 1 投票 0

如何使用 SimpleAdapter 从 Spinner 获取所选项目位置

我有一个微调器,使用下面的代码填充,我想获取用户从微调器中选择的项目。 最好的方法是什么? 列表> 表格列表=...

回答 2 投票 0

如何自定义微调器?

我正在创建一个具有自定义背景的自定义微调器,因为这将隐藏困难的下拉列表,这就是为什么我设置自定义布局来显示下拉列表。但是当我将适配器添加到

回答 1 投票 0

更改 XML 中 Spinner 下拉箭头的颜色

正如我在问题中所写,我想更改 XML 中 Spinner 的下拉箭头(默认箭头,不是自定义箭头或类似的东西)的颜色,但问题是我不能...

回答 8 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.