我想获得一个文本框,看起来像一个微调,以激活dateselect器对话框。 这是在ICS上的Google日历应用程序和联系人应用程序(用于出生date)中完成的。 我是否需要使用微调,如果是的话,如何将其input视图更改为dateselect器? 或者,如果没有,我怎么得到一个文本视图有一个小三angular,通常表示一个微调?
我正在尝试解决方向更改重新启动活动的问题。 我有一个带有下拉列表导航的ActionBar ,在每次旋转之后,这个列表的第一个元素被激活。 保持fragment内容并不困难,但我不知道如何设置活动列表项目。 这里是ActionBar的定义: getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); ArrayAdapter<CharSequence> list = ArrayAdapter .createFromResource(this, R.array.action_list, android.R.layout.simple_dropdown_item_1line); list.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); getActionBar().setListNavigationCallbacks(list, this); 这是我的解决方法: @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { if (!application.isRotated) { application.activePosition = itemPosition; application.activeId = itemId; getFragmentManager().beginTransaction() .replace(android.R.id.content, MyFragment.newInstance(itemPosition)) .commit(); } else { application.isRotated = false; this.onNavigationItemSelected(application.activePosition, application.activeId); } return true; } @Override protected void onStop() { […]
我的布局中有一个Android微调视图。 我希望微调器在closures时只显示一个文本项目,但是当用户点击它时(即打开微调器对话框),我想显示每个项目的更多信息,包括图标和附加描述文本视图。 因为它现在是微调在两种状态显示相同的布局(图标,标题+描述)。 如果我将一个ArrayAdapter附加到微调,那么我可以访问一个名为“setDropDownViewResource”的东西,但这不一定是我所需要的,因为我的微调数据是从一个光标而不是从任何types的数组中获取的(截至目前,创build了我自己的适配器,扩展了BaseAdapter)。 任何人都可以帮助我?
你如何从Java代码编程填充微调? 我在这样的布局中有一个微调: <Spinner android:id="@+id/consultation_deseases" android:layout_width="@dimen/bigSpinnerWidth" android:layout_height="@dimen/bigSpinnerHeight" android:prompt="@string/disease_prompt" /> 用java代码,我需要创build适配器并添加项目。
我在数据库中有1-50条logging。 我使用游标获取这些数据,并使用简单光标适配器将这些值设置为微调。 现在我需要的是我想设置一个值,说第39个值作为默认值。 但不是由于它的地位,我想根据它的价值来设定。 我知道如何设置旋转器默认的位置 spinner.setSelection(39) 将微调器设置为该值。 但我没有任何想法,在数据库中设置微调器默认的值(文本)。 我知道数据库中的值。 因为例如“书”是微调的价值之一。 我需要将Spinner默认设置为书籍。 有没有办法做到这一点?
根据Android文档 ,Spinner小部件支持Material Design样式。 所以我决定在我的应用程序中将它放在工具栏的顶部。 布局/ activity_base.xml <android.support.v7.widget.Toolbar android:id="@+id/my_awesome_toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="5dp" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </android.support.v7.widget.Toolbar> 活动主题 <style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/omni_primary_color</item> <item name="colorPrimaryDark">@color/omni_primary_color_dark</item> <item name="colorAccent">@color/omni_accent_color</item> </style> BaseActivity.java public class BaseActivity extends ActionBarActivity { @InjectView(R.id.my_awesome_toolbar) Toolbar mToolbar; @InjectView(R.id.spinner) Spinner spinner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_base); ButterKnife.inject(this); //setup toolbar […]
在使用Androiddevise支持库的TextInputLayout在一个EditText组件上面放置一个浮动标签之后,我想知道是否有一种方法为Spinner组件添加浮动标签(不一定使用devise库)。 通过这个,我的意思是类似于放置在Spinner上方的TextView (显然没有像TextInputLayout这样的animation),但是我希望文本大小,字体和颜色与TextInputLayout的浮动标签相匹配 。 例如,它看起来像这样(参见Spinner上面的标签): 正如我之前提到的,我的主要目标是在Spinner上面添加一个标签,就像在TextInputLayout – 标签和组件之间的文本大小,字体,颜色和距离都是相同的。 在有关浮动标签文本字段的Googledevise页面上 ,有一个图表显示标签相对于组件的尺寸,但没有标签文字颜色或尺寸的指示: 所以,总结一下,我在问: – 如果有一个特殊的组件来实现我所要求的或者我可以使用的一个自定义的视图,那么会是什么,以及如何使用它。 – 如果不是,浮动标签的文字大小,颜色和字体是什么,这样我就可以在上面的图片中显示布局尺寸,在我的Spinner TextView上方放置一个TextView 。 编辑: 从Google文本字段的devise准则中 ,它具有以下浮动标签: 提示和input字体:Roboto Regular 16sp 标签字体:Roboto Regular 12sp 瓷砖高度:72dp 文本顶部和底部填充:16dp 文本字段分隔符填充:8dp 以及上面显示的图像。 所以浮动标签字体是: Roboto Regular 12sp 。 因此,您可以使用TextView来显示Spinner标签,因为我不知道可以使用的任何自定义View或特殊组件。 然而 ,试用后,它看起来不像图像中显示的例子。 自定义视图可能会更好 ,因为它可能看起来更好,但上面的解决scheme只是一种实现接近我原来想要的东西的方式。
如果Spinner项目的文本太长而无法放入一行,则文本不会被打包,而会被截断。 API级别> = 11的情况才是这种情况。 这里是Android 4.2.2 (左)的屏幕截图,它显示了错误的行为和Android 2.3.3 (右),看起来如预期的那样。 android:singleLine="false"在这里就被忽略了。 所以像所有其他的尝试像android:lines , android:minLines等android:minLines似乎比窗口宽度宽得多。 我看到其他人有同样的问题,但没有人能find解决办法。 那么,这是一个系统错误吗? 我不认为操作系统版本之间的这种不一致可能是有意的。 请注意: 有一些答案提出了相对简单的解决scheme。 编写一个自定义Adapter并重写getView()以及getDropDownView() 。 这不是解决scheme,因为在这一点上,仍然存在原始问题:布局如何处理正确的换行? 将下拉视图的TextView包装到父ViewGroup 。 不能使用android:layout_width="match_parent"因为父母的宽度似乎是无限的。 给下拉查看一个固定的宽度。 这不适用于Spinner可以具有的不同的宽度。 当然,没有任何解决scheme是手动将\n的任何地方插入到文本中。 用下面的代码重现: 更新:我也上传了这个作为GitHub上的示例项目: 下载 /res/values/arrays.xml: <string-array name="items"> <item>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt.</item> <item>At vero eos et accusam et justo duo […]
当你实现SpinnerAdapter的时候,你得到了getDropDownView ,它与getView不同之处在于,当你需要扩展BaseAdapter时候, getView BaseAdapter 。
我用Spinner和TextView创build了Android应用程序。 我的任务是从TextView中的微调控制器的下拉列表中显示选定的项目。 我在onCreate方法中实现了Spinner,所以当我运行程序的时候,它在TextView显示一个值(在从下拉列表中select一个项目之前)。 我只想从下拉列表中select一个项目后,才显示TextView中的值。 我该怎么做呢? 这是我的代码: import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class GPACal01Activity extends Activity implements OnItemSelectedListener { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Spinner spinner = (Spinner) findViewById(R.id.noOfSubjects); // Create an […]