Articles of android spinner

如何防止onNavigationItem在活动启动时select发生火灾?

我想在我的活动下面的动作栏中使用微调是onCreateOptionsMenu:我用这个教程来实现这个方法。 我的问题是活动午餐时,onNavigationItemSelected方法触发和开关/情况下的代码运行并为位置0设置的活动打开。 当活动是午餐时,我应该做什么来防止运行开关/箱子? @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.main, menu); SpinnerAdapter mSpinnerAdapter; if(Build.VERSION.SDK_INT <= 10) { mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_item); } else { mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_dropdown_item); } ActionBar.OnNavigationListener mOnNavigationListener = new ActionBar.OnNavigationListener() { @Override public boolean onNavigationItemSelected(int position, long itemId) { switch (position) { case 0: Intent searchIntent = new Intent(ActivitySearchBusiness.this, ActivityFindBusinessCity.class); startActivity(searchIntent); […]

如何在微调中添加提示

我试图在微调控件中添加一个提示,因为在EditText没有提示选项,我想要显示性别作为提示,点击时必须只显示男性和女性不提示。 如何才能完成只使用XML 微调的XML代码。 <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/spinner1" android:entries="@array/gender" android:layout_marginTop="10dp" android:layout_marginLeft="25dp" android:layout_marginRight="25dp" android:layout_gravity="center_horizontal" /> string微调器的数组 <string-array name="gender"> <item>Male</item> <item>Female</item> </string-array>

带有圆angular的自定义微调器,描边和select器图标

我希望我的Spinner有一个黑色的渐变背景,左边是白色的文字,右边是select器图标(白色的向下的三angular形)。 正如我所看到的,有两种方法可以解决这个问题: 如果我将背景设置为xml可绘制资源,我可以使Spinner看起来很完美,但是我需要以某种方式在右侧添加白色三angular形,我不知道该如何去做: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <gradient android:startColor="#343434" android:endColor="#171717" android:angle="270" /> <stroke android:width="1dp" android:color="#ffffff" /> <corners android:radius="4dp" /> <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp" /> </shape> </item> </selector> 我创build了一个包含三angular形的9-patch图像,然后使用xml绕过angular并为图像添加一个描边。 我已经去了,但无法使其工作: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/spinnerblack" > <stroke android:width="1dp" android:color="#ffffff" /> <corners android:radius="3dp" /> <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp" /> </item> […]

Android微调OnItemSelected没有调用相同的项目

首先,我知道这是问了好几次,但在较新的android platfom看起来像build议的解决scheme不工作(其他人说的一样)。 我需要我的微调仍然调用OnItemSelected即使当用户select相同的项目两次。 我设法find这个类应该做的伎俩: public class NDSpinner extends Spinner { private int lastSelected = 0; private static Method s_pSelectionChangedMethod = null; static { try { Class noparams[] = {}; Class targetClass = AdapterView.class; s_pSelectionChangedMethod = targetClass.getDeclaredMethod("selectionChanged", noparams); if (s_pSelectionChangedMethod != null) { s_pSelectionChangedMethod.setAccessible(true); } } catch( Exception e ) { Log.e("Custom spinner, reflection bug:", e.getMessage()); […]

像使用appcompat v21的微调器一样调整TextView

我想使TextView看起来像一个新的Material风格的微调框。 我设法做到了“Widget.Material.Light.Spinner”风格,但在AppCompat(v21)资源中找不到任何其他select。 我的xml: <TextView android:id="@+id/sp_league_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" tools:text="Premier league" style="@android:style/Widget.Material.Light.Spinner" android:textColor="@android:color/white" />

在没有自定义样式的Android Spinner中的项目之间添加更多空间?

我有一个Android应用程序,我正在写一个混凝土公司,将用于时钟进出。 我曾经用一些纺纱工来select工作场所和工作岗位,但是我担心纺纱工的物品太靠近了,而且员工很难select合适的物品。 我想给微调项目之间多一点空间,但不想经历所有制作自定义风格的麻烦,因为我真的希望微调看起来和行为完全一样,除了默认只需要多一点的填充就可以了,要做出自定义的样式还有很多工作要做。 有没有简单的改变,比如设置微调的一些属性? 我已经尝试将微调types设置为对话框,但它只是显示具有相同的间距量的列表,只是没有附加到微调控件。

自定义旋转器的间距

纺纱厂提供两种状态。 第一个和默认状态( 状态A )显示当前select的值。 第二个( 状态B )显示了在微调显示被触摸时的下拉菜单。 默认情况下,在状态A和B中显示的项目添加左填充。我想在显示当前所选值( 状态A )时将其删除,但在项目显示在下拉菜单( 状态B )中时将其保留, 。 由于填充是在创build微调器时指定的布局中使用CheckedTextView设置的,所以我的第一个尝试是将包含带空填充的CheckedTextView的自定义布局传递给微调构造函数。 这样,左边的填充消失在状态A,但也在状态B.但是,我的目标是保持状态A. 我第二次尝试是在我的主题定义中定制android:dropDownSpinnerStyle 。 由于更改android:dropDownSpinnerStyle的背景颜色只能更改状态A中项目的背景颜色,我的想法是用负值覆盖marginLeft或paddingLeft。 不幸的是,它没有效果。 由于似乎没有考虑负利润率/填充率,我尝试了相反的做法。 首先,我已经使用了一个自定义的项目布局(如我第一次尝试所解释的),以便移除两个状态(A和B)上的左侧填充。 其次,我为属性android:dropDownListViewStyle定义了一个自定义样式。 不幸的是,对最后一个属性使用正的marginLeft值没有任何作用。 因此,我已经设置paddingLeft。 它的工作原理,只允许我得到状态B的左边距。 但是,左侧空间也适用于背景触摸颜色(参见下图)。 我认为如果我想使用完全填充下拉菜单宽度的触摸背景颜色,只有状态A的样式应该改变。 任何想法,build议或例子都欢迎。 以下是我第三次尝试的主题定义: <style name="Theme.App.Base" parent="Theme.App"> … <item name="android:dropDownListViewStyle">@style/Widget.Spinner.DropDown.ListView</item> </style> <style name="Widget.Spinner.DropDown.ListView" parent="Widget.AppCompat.ListView.DropDown"> <item name="android:paddingLeft">16dp</item> </style>

在牛轧糖上的黑色背景上的黑色文字(android.R.layout.simple_spinner_item)

我在欢迎活动上有一些基本的代码,像往常一样简单地绑定列表适配器: final ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, android.R.id.text1); spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 这用于工作,直到我更新到API级别25 。 在那个时候,没有任何其他的变化,这个微调下拉的文字变得不可读: 我的主题的父母是“Theme.AppCompat.Light.NoActionBar”,但同样, 我没有玩颜色 ,没有改变,因为当它显示正确(API <25)。 任何想法? 我知道我可以用setTextColor()内的一些setTextColor()来修复它,但是要点是理解它为什么起作用,现在它不起作用,因为这可能是我的一个概念错误的标志,或者甚至一些Android的错误。 事实上,我注意到相同的问题(黑色背景上的黑色文字)在相当标准的部件/应用程序,如Cyanogen / LineageOS默认的天气之一:

如何停止滚动屏幕顶部的select微调在Android

我在滚动视图中使用微调,当我做select微调,滚动视图滚动到屏幕的顶部。 有什么办法可以防止这个滚动? 任何帮助表示赞赏。 谢谢。

意式咖啡dynamic旋转器testing

我试图testing一个dynamic生成的微调 。 我可以点击微调,但是我需要从列表中select一个给定的文本显示的选项(我从hierarchyviewer发现一个PopupWindow显示,但无法获得所需的文本是离屏) 。 微调器使用自定义对象的ArrayAdapter(下面的代码), public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner mySpinner = (Spinner) findViewById(R.id.my_spinner); List<MyValue> list = Arrays.asList( new MyValue("One", "1"), new MyValue("Two", "2"), new MyValue("Three", "3"), new MyValue("Four", "4"), new MyValue("Five", "5"), new MyValue("Six", "6"), new MyValue("Seven", "7"), new MyValue("Eight", "8"), new MyValue("Nine", "9"), […]