运行Jelly Bean(4.2.1)的一些设备(但不是全部)似乎缺less应该出现在TextView上的感叹号错误图标(或者更常见的是EditText ),该图标通过TextView.setError(CharSequence error) 。 Galaxy Nexus绝对似乎缺less了这个图标。 效果是由setError设置的错误状态只有在EditText具有焦点时才会显现。 这使得setError(…)更加有用,因为它经常被用来鼓励用户返回EditText来解决问题。 例如,您有一个标准的login屏幕,其中包含用户名和密码表单条目,当用户单击提交button时,该条目将被validation。 在用户名表单上设置的validation错误消息将不会显示,除非用户单击回到该表单 – 这是错误图标旨在鼓励他们这样做! testing:(可能有一个更容易访问的EditText,但这个是非常广泛的可用) 打开设置 select“添加帐户”(这是在旧设备上的“帐户和同步”) select“Google”作为帐户types select“现有”(在旧设备上点击“下一步”和“login”后) 将“电子邮件” EditText留空,单击“密码” EditText 此时,在“电子邮件” EditText上设置了一个错误,表示它不能为空。 在没有此问题的设备上,会显示常见的错误图标,当EditText具有焦点时,会将其展开为完整的错误消息。 在运行Jelly Bean的Galaxy Nexus上,没有图标显示,只有当' EditText重新对焦时,错误才会显示,但仍然没有图标。 这看起来像一个错误,但我想检查其他人是否可以重现它,有什么问题的想法,并有一个很好的解决方法。 使用setError(CharSequence error, Drawable icon)可能会修复一些问题,但能够在不同的Android版本中使用股票错误graphics将会很好。
我已经实现了新的Android数据绑定,并且实现后意识到它不支持双向绑定。 我试图解决这个手动,但我努力寻找一个好的解决scheme时使用绑定到EditText。 在我的布局中,我有这样的观点: <EditText android:id="@+id/firstname" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textCapWords|textNoSuggestions" android:text="@{statement.firstName}"/> 另一种看法也是显示结果: <TextView style="@style/Text.Large" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{statement.firstName}"/> 在我的片段中,我创build了这样的绑定: FragmentStatementPersonaliaBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_statement_personalia, container, false); binding.setStatement(mCurrentStatement); 这个工作,并把当前值firstName在EditText中。 问题是如何在文本更改时更新模型。 我试着在EditText上放置一个OnTextChanged监听器并更新模型。 这创build了一个循环杀死我的应用程序(模型更新更新GUI,它调用textChanged时间无限)。 接下来,我试图只在发生如下真实变化时通知: @Bindable public String getFirstName() { return firstName; } public void setFirstName(String firstName) { boolean changed = !TextUtils.equals(this.firstName, firstName); this.firstName = firstName; if(changed) { notifyPropertyChanged(BR.firstName); } } […]
在运行Android 4.0(Ice Cream Sandwich)的Android模拟器上进行testing时,我注意到Edittext做了一些很奇怪的事情。 首先,它强调每一个被识别为红色的“拼写错误”的单词。 我如何禁用这个? 其次,尽pipe在布局XML中,我已经指定了android:scrollHorizontally="true" word-wrap是启用的:我怎么禁用这个呢? 以下是Edittext的布局XML代码: <EditText android:id="@+id/editor" android:layout_width="40dp" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:layout_below="@+id/toolbar" android:layout_toRightOf="@+id/toolbarleft" android:paddingBottom="0dp" android:paddingRight="0dp" android:scrollHorizontally="true" android:text="" android:inputType="textMultiLine" > <requestFocus /> </Edittext> 这是我需要禁用的拼写检查器的一个例子: 拼写检查器演示http://www.abstract-thoughts.com/wp-content/uploads/2011/10/spell.jpg 非常感谢!
我正在创build一个EditText对象,然后尝试在unit testing中引用它。 为这个dynamic创build的对象添加一个新的id给R.id的最好方法是什么,以便我稍后可以通过unit testing中的findViewById()来引用它?
我有视图,其中有两个文本框,用户可以在同一屏幕(通过对话框)从另一个视图中select文本颜色。 所以当用户通过对话框改变颜色时,我正在改变EditText文本的颜色及其提示。 但是,当用户select其他颜色后,如果在EditText有某些文本可用,则该文本将以该颜色显示。 但是,如果我删除所有文本,那么HintText的颜色就是以前的颜色。 例如,目前,如果我在文本框中显示红色,并且用户select绿色,则文本以绿色显示。 但是,如果我删除该文本,则提示文本即使在代码中更改提示颜色时也会显示为红色。 这个问题只出现在那里有一些文字。 如果它是空白的,并提示文本,那么问题就没有到来。
参考Google发布的新TextInputLayout ,如何更改浮动标签的文本颜色? 在样式中设置colorControlNormal , colorControlActivated , colorControlHighLight不起作用。 这是我现在所拥有的:
我有一个应用程序,我希望能够显示一个TextView(或EditText),允许用户select一些文本,然后按下button来完成一些文本。 在Honeycomb之前的Android版本上实现这个function是没有问题的,但是在Honeycomb上,默认的长按操作之上是显示带有Copy / Cut / Paste选项的操作栏。 我可以拦截长按来显示我自己的操作栏,但是我没有得到显示的文本select句柄。 一旦我开始了自己的ActionMode,我怎样才能显示文本select句柄? 这里是我用来启动ActionMode的代码,除了没有显示文本select句柄外, public boolean onLongClick(View v) { if(actionMode == null) actionMode = startActionMode(new QuoteCallback()); return true; } class QuoteCallback implements ActionMode.Callback { public boolean onCreateActionMode(ActionMode mode, Menu menu) { MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.quote, menu); return true; } public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; } […]