将我们的一些设备更新到Android 8.0后,在关注a TextInputEditText内部的一个字段后TextInputLayout,应用程序崩溃了Exception:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void
android.view.View.getBoundsOnScreen(android.graphics.Rect)' on a null object reference
at android.app.assist.AssistStructure$WindowNode.(AssistStructure.java)
at android.app.assist.AssistStructure.(AssistStructure.java)
at android.app.ActivityThread.handleRequestAssistContextExtras(ActivityThread.java:3035)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1807)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Run Code Online (Sandbox Code Playgroud)
当我们进入android 设置 - >系统 - >语言和输入 - >高级 - >自动填充服务 - >无,然后专注于TextInputEditText / TextInputLayout不再崩溃.
如何在不必禁用设备上的新8.0自动填充服务的情况下防止崩溃发生?
android android-edittext android-textinputlayout android-8.0-oreo
我有一个相对简单的问题.我有一个包含很多EditText的活动.当我打开活动时,它会自动聚焦到第一个EditText并显示虚拟键盘.
我怎么能阻止这个?
我一直在尝试将秒值(在BigDecimal变量中)转换为editText中的字符串,如"1小时22分33秒"或类似的东西.
我试过这个:
String sequenceCaptureTime = "";
BigDecimal roundThreeCalc = new BigDecimal("0");
BigDecimal hours = new BigDecimal("0");
BigDecimal myremainder = new BigDecimal("0");
BigDecimal minutes = new BigDecimal("0");
BigDecimal seconds = new BigDecimal("0");
BigDecimal var3600 = new BigDecimal("3600");
BigDecimal var60 = new BigDecimal("60");
Run Code Online (Sandbox Code Playgroud)
(我有一个roundThreeCalc,这是秒的值,所以我尝试在这里转换它.)
hours = (roundThreeCalc.divide(var3600));
myremainder = (roundThreeCalc.remainder(var3600));
minutes = (myremainder.divide(var60));
seconds = (myremainder.remainder(var60));
sequenceCaptureTime = hours.toString() + minutes.toString() + seconds.toString();
Run Code Online (Sandbox Code Playgroud)
然后我将editText设置为sequnceCaptureTime String.但那没用.它每次强制关闭应用程序.我完全超出了我的深度,非常感谢任何帮助.快乐的编码!
我试图阻止在重新启动活动时关闭使用"警报"构建器构建的对话框.
如果我重载onConfigurationChanged方法,我可以成功地执行此操作并重置布局以更正方向,但我丢失了edittext的粘性文本功能.所以在解决对话问题时我创建了这个edittext问题.
如果我从edittext中保存字符串并在onCofiguration更改中重新分配它们,它们似乎仍然默认为初始值而不是在旋转之前输入的值.即使我强制使用无效似乎也会更新它们.
我真的需要解决对话问题或编辑文本问题.
谢谢您的帮助.
在我的应用程序中,我EditText在右侧有一个搜索图标.我使用下面给出的代码.
<EditText
android:id="@+id/search"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="4dip"
android:layout_weight="1"
android:background="@drawable/textfield_search1"
android:drawableLeft="@drawable/logo"
android:drawableRight="@drawable/search_icon"
android:hint="Search Anything..."
android:padding="4dip"
android:singleLine="true" />
Run Code Online (Sandbox Code Playgroud)
我想设置onClickListener分配给右侧drawable的搜索图标图像EditText.这怎么可能?
我正在尝试创建与MultiAutoCompleteTextViewGoogle+应用中的实施方式类似的联系人气泡.以下是截图:
.
我试图扩展DynamicDrawableSpan该类,以便在一段文本的背景中获得一个spannable drawable
public class BubbleSpan extends DynamicDrawableSpan {
private Context c;
public BubbleSpan(Context context) {
super();
c = context;
}
@Override
public Drawable getDrawable() {
Resources res = c.getResources();
Drawable d = res.getDrawable(R.drawable.oval);
d.setBounds(0, 0, 100, 20);
return d;
}
}
Run Code Online (Sandbox Code Playgroud)
我的oval.xml drawable定义如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#352765"/>
<padding android:left="7dp" android:top="7dp"
android:right="7dp" android:bottom="7dp" />
<corners android:radius="6dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
在我的Activity类中MulitAutoCompleteTextView,我设置了气泡跨度,如下所示:
final Editable e = tv.getEditableText();
final SpannableStringBuilder sb = new …Run Code Online (Sandbox Code Playgroud) 我正在使用一个EditText内部TextInputLayout,但在将支持库升级到23.2.0之后,我在logcat中得到了这个警告,常规EditText和一个有TextInputEditText什么区别?我似乎无法找到任何文件.
android android-layout android-edittext android-support-library android-textinputlayout
我的布局包含ListView,SurfaceView和EditText.当我点击EditText它时,它会获得焦点并弹出屏幕键盘.当我点击EditText它之外的某个地方时,它仍然有焦点(它不应该).我想我可以OnTouchListener在布局中设置其他视图并手动清除EditText焦点.但似乎过于hackish ......
我在其他布局中也有相同的情况 - 列表视图中包含不同类型的项目,其中一些项目EditText位于内部.他们的行为就像我上面写的那样.
EditText当用户触摸外面的东西时,任务就是失去焦点.
我在这里看到过类似的问题,但没有找到任何解决方案......
我有一个View,其中有两个文本框,用户可以在同一个屏幕上从另一个视图中选择文本颜色(通过对话框).
因此,当用户通过对话框更改颜色时,我正在更改EditText文本的颜色及其提示.但是当EditText用户选择其他颜色之后有一些文本可用时,那么该文本就会以该颜色出现.但是,如果我删除所有文本,那么HintText的颜色就是之前颜色的颜色.
例如,目前如果我在文本框中有红色,并且用户选择绿色,那么文本是绿色的.但是,如果我删除该文本,那么即使我在代码中更改提示颜色,提示文本也会显示为红色.只有当有一些文本时才会出现此问题.如果它是空白的并且提示文本在那里那么问题就不会到来.
我在EditText字段中设置了最大文本长度.
<EditText
android:id="@+id/courseDescriptionField"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:lines="5"
android:maxLength="@integer/max_course_description_limit"
android:gravity="left|top" >
</EditText>
Run Code Online (Sandbox Code Playgroud)
然而,问题是,文本STOPS出现在140个字符之后,但它仍然继续输入,除了文本没有出现,但是,它确实出现在"缓冲区"(意思是建议事物)中这就是你所说的.
作为旁注,我使用TextWatcher来跟踪限制.有没有办法完全限制文本的数量,所以当有140个字符时,按下退格/删除以外的其他内容时没有任何反应?
android ×10
android-edittext ×10
focus ×2
bigdecimal ×1
dialog ×1
drawable ×1
html ×1
java ×1
keyboard ×1
string ×1