草庐IT

android - 如何在 TextView 下方正确显示弹出菜单,类似于 Spinner?

背景我必须创建一个类似微调器的View,它具有以下行为:其中包含所选项目文本的textView,右侧有一个箭头图标,指示它是否处于“打开”状态。点击View后,会在其下方(不是顶部)出现一个弹出菜单,显示可供选择的项目列表,并标记所选项目。在popupWindow周围,有一个半透明的黑色。具有用于打开和关闭它的自定义动画。问题我已经成功地制作了这个View(代码如下),但由于某种原因,在Android7.1上,我让弹出菜单出现在View的顶部(甚至重叠它和它上面的View),而不是它下面,正如它应该。这是它的外观和它的外观:由于代码和资源相当多,我已将其全部放在Github存储库(he

Android Spinner - onItemSelected/setOnItemSelectedListener 未触发

这让我发疯了,因为这是我以前做过的事情,但不知道为什么它现在不起作用......我有一个菜单按钮,通过menu.xml文件和带有开关的onOptionsItemSelected方法以通常的方式实现,该方法创建并显示一个微调器。我添加了setOnItemSelectedListener,但它似乎永远不会触发。微调器出现,我选择一个选项或退出,既不调用onItemSelected也不调用onNothingSelected。这里是菜单按钮处理开关语句的“case”和“returntrue”之间的所有代码。(topThis是一个引用Activity上下文的变量-适用于应用程序中的所有其他toa

Android Spinner 工具栏样式

如何实现toolbox中spinner的materialdesign?我尝试了以下方法,但我的微调器看起来像这样我的最小sdk是15。在我的onCreate上ButterKnife.inject(this);mToolbar.inflateMenu(R.menu.menu_login);mToolbar.setTitle(R.string.sign_in);mToolbar.setOnMenuItemClickListener(this);SpinnerAdapterspinnerAdapter=ArrayAdapter.createFromResource(this,R.array.

android - 如何在 Android 中限制 Spinner 下拉 View 的高度

请建议我用来创建它的任何方法。查询:我正在创建2-SpinnerView,我必须在其中添加Country/Cities列表,所以如果我选择印度,那么我会在下拉View中获得50个项目,问题这是因为它占用了整个页面的高度。我想要什么:我想创建一个下拉View,用户只能在其中看到10个项目下拉View,只要用户滚动下拉View,就会显示其他项目。 最佳答案 您可以使用反射。Spinnerspinner=(Spinner)findViewById(R.id.spinner);try{Fieldpopup=Spinner.class.get

android - 如果选择了非零位置,则在旋转后调用 Spinner 的 onItemSelected 回调两次

当我创建我的Activity时,我设置了一个Spinner,为它分配了一个监听器和一个初始值。我知道在应用程序初始化期间会自动调用onItemSelected回调。我觉得奇怪的是,当设备旋转时,这种情况会发生两次,给我带来了一些我必须以某种方式规避的问题。如果微调器初始选择为零,这不会发生。我能够隔离问题,这是触发它的最简单的Activity:publicclassMainActivityextendsActivityimplementsOnItemSelectedListener{@OverrideprotectedvoidonCreate(BundlesavedInstanceSt

android - 遵循 Material 设计指南正确使用 Spinner

在阅读了谷歌Material设计的新设计指南后,我没有找到任何在Material设计中设计/显示微调器(http://developer.android.com/design/building-blocks/spinners.html)的明确解决方案。最近的应该是这样的:http://material-design.storage.googleapis.com/publish/v_1/quantumexternal/0Bx4BSt6jniD7anplVHR3QkdNUHc/components_menus_behavior2.png-但我很确定,会有一些更好的解决方案。特别是如果涉及到

android - 将 ENUM 值放入 android spinner?

例如:我有一个包含天数的枚举。如何将其值放入spinner中? 最佳答案 与另一个答案类似,但您可以使用ArrayAdapter基于Enum类进行填充。我建议在Enum类中覆盖toString以使微调器中填充的值对用户更友好。在Activity中:SpinnermySpinner=(Spinner)findViewById(R.id.mySpinnerId);mySpinner.setAdapter(newArrayAdapter(this,android.R.layout.simple_spinner_item,MyEnum.va

android - 如何将额外元素插入到 SimpleCursorAdapter 或 Spinner 的光标中?

我有一个Spinner,用于显示从数据库中获取的数据列表。数据从查询返回到游标,游标被传递给微调器的SimpleCursorAdapter。它工作正常,但我想在这个数据之上插入另一个项目。例如,微调器已经显示了保存在数据库中的用户创建模板列表,但我想在模板列表顶部插入“新模板”和“空模板”,并且需要将其插入到Cursor/SimpleCursorAdapter不知何故。我考虑过使用数组列表并从游标填充数组列表,但游标对我来说是更好的解决方案,因为它也包含其他相关的数据行。我在互联网上搜索了其他解决方案,并找到了一些要求为此目的使用CursorWrapper的答案,但我找不到如何使用Cu

android - 删除 android Spinner 中的间距或填充

我正在使用支持libv21中的androidspinner和edittext。我想将文本对齐到与edittext相同的位置,如图所示。但是,默认微调器包括间距或填充。所以,我想删除它以将文本左对齐。请帮助如何删除它。 最佳答案 在您的SpinnerAdapter中:@OverridepublicViewgetView(intposition,ViewconvertView,ViewGroupparent){Viewview=super.getView(position,convertView,parent);view.setPadd

Android:两个 Spinner onItemSelected()

我在一个Activity中有两个微调器(day_spin和time_spin)。我想将选定的day_spin值保存到变量中。是否可以区分同一Listener中的两个微调器?还是我必须为每个微调器编写自己的Listener类?我还想获取所选项目的编号。例如,我有6个元素的字符串数组。我选择了数字3。如何获取id?day_spin=(Spinner)findViewById(R.id.spinner);ArrayAdapteradapter_day=ArrayAdapter.createFromResource(this,R.array.spinner_day_array,android.