Articles of android edittext

我怎样才能有可点击的Spannables的EditText,仍然可以通过longClickselect?

我有TextViewtypes跨度ClickableStringSpan定义如下: public class ClickableStringSpan extends ClickableSpan { private View.OnClickListener mListener; int color; public ClickableStringSpan(View.OnClickListener listener,int color) { mListener = listener; this.color = color; } @Override public void onClick(View v) { mListener.onClick(v); } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(false); ds.setColor(color); } } 我在我的文字上设置了可点击的跨度: spanStr.setSpan(new ClickableString(new linkedTextClickListener(), linkColor), startIndex, endIndex, SpannableString.SPAN_INCLUSIVE_EXCLUSIVE); 现在我想将这些string应用于EditText而不是TextViews。 一切都很好,可点击的string现在不再被点击了。 我想知道如何将这种跨度的点击传递给他们指定的clicklistener? 更新:我主要关心编辑文本是我想让用户select文本的一部分,并与他分享,同时他/她可以点击ClickableSpans。

EditText在使用devise支持库时,getHint()返回null

将EditText与Design lib(ver 22.2.1)结合使用时,TextInputLayout以编程方式获取提示返回null。 我试图追加星号“*”以编程方式强制字段,因此EditText.getHint()但事实上,它返回null是在这种情况下的问题。 EditText editText = (EditText) findViewById(R.id.edit2); String hint = String.format("%s *", editText.getHint()); editText.setHint(hint); 一个简单的代码插图:Layout.xml: <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/edit2" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hello_world" android:inputType="text"/> </android.support.design.widget.TextInputLayout> Java的: EditText editText = (EditText) findViewById(R.id.edit2); if (editText.getHint() == null) throw new AssertionError("Hint should not be null"); 依赖:编译'com.android.support:design:22.2.1' 以前相关的问题在这里 !

Android操作栏选项卡和键盘焦点

问题 我有一个非常简单的活动,有两个选项卡,我试图在自定义视图中处理键盘input。 这工作很好…直到我交换标签。 一旦我切换标签,我永远不会再获取事件捕获。 在另一个应用程序中,打开一个对话框,然后closures它,将允许我的关键事件通过。 没有这样做,我发现没有办法再次获得我的关键事件。 这里有什么问题? 一旦交换标签,我找不到任何可以获得关键事件的方法,并且好奇他们在吃什么。 这个例子很短,很重要。 码 main.xml中 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <FrameLayout android:id="@+id/actionbar_content" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> my_fragment.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <view class="com.broken.keyboard.KeyboardTestActivity$MyView" android:background="#777777" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="fill_parent" > <requestFocus/> </view> </LinearLayout> KeyboardTestActivity.java package com.broken.keyboard; import android.app.ActionBar; import android.app.Activity; import android.app.Fragment; […]

如何限制EditText在Java中只input浮点值?

我已经find答案限制它在整数/浮动在XML中,我想要以编程方式。 我可以设置setInputType(InputType.TYPE_CLASS_NUMBER)为整数值,但什么浮点值? 我希望他们在xxxx.xxx格式。

EditText首先关注清晰文本 – Android

我有几个EditText对象里面的文本。 我希望第一次EditText变得焦点删除其中的文本,但只在第一次。 我该怎么做? 下面是一个例子:我有一个名为SomeThing的EditText,其中包含文本“someText”。 当用户第一次触摸SomeThing我想要“someText”被删除。 所以我们假设文本被删除,现在用户input自己的文本,这次是“someOtherText”,EditText失去了其他EditText的焦点。 这次当用户点击SomeThing时,“someOtherText”不会被删除,因为这是第二次被关注。

android format edittext在每4个字符之后显示空格

Android – 我想从用户的数字input到EditText – 它需要用空格分隔 – 每4个字符。 例如:123456781234 – > 1234 5678 1234 这只是为了视觉的目的。 不过,我需要没有空间的string作进一步的使用。 什么是我可以做到这一点的最简单的方法?

软键盘与EditText字段重叠

我发现这个老post对我的问题肯定有帮助,但是我注意到它似乎并不能解决我的问题。 我已经收集到,我需要为我的活动设置android:windowSoftInputMode =“adjustPan”。 但问题是,它根本不能满足。 文本字段朝向视图的底部,当键盘显示时,视图略微移动,但仅移动EditText的最顶部。 文本字段已打开自动完成function,当它开始显示自动完成选项时,视图会稍微向下移动,但实际上由自动完成选项变得更加模糊。 这使得文本input字段非常难以使用,因为你看不到任何你正在input的内容。 它是一个多行input字段,当文本滚动到下一行时,视图会进一步移动,所以您可以看到上一行文本。 但是你看不到你在input什么,我觉得这很重要。 有没有人有任何想法解决这个问题?

Android – 键盘不出现在浮动窗口

我正在编写一个应用程序,它使用以下代码在屏幕上绘制运行应用程序的edittext: WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, PixelFormat.TRANSLUCENT); windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); windowManager.addView(mEditText, params); edittext的xml是: <EditText android:id="@+id/mEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLines="3" android:inputType="textAutoComplete|text" android:focusable="true" android:focusableInTouchMode="true" /> 但是,专注于此不会带来键盘。 我也试着用onFocusListener来启动它: mEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(hasFocus) { Log.d("", "Has focus"); ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(v, InputMethodManager.SHOW_IMPLICIT); } else { Log.d("", "Lost […]

在Android中的EditText的左侧设置图像

我有一个联系表单,我想添加一些图标到我的编辑文本,以获得更好的外观。 我想创buildEditText如下所示。 我有像下面的EditText。 我得到了类似的结果。 我希望图像完全位于左侧,如上图所示。 我知道在内部EditText是使用Nine Patch图像,我认为这就是为什么结果是一些什么不同。 谁能知道如何解决这个问题? <EditText android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="51dip" android:hint="@string/name" android:inputType="text" android:drawableLeft="@drawable/name_icon_edittext" />

如何在android中制作多行edittext

我尝试使用LayoutParams.MATCHPARENT为其宽度和高度dynamic创build一个edittext。 我已经尝试了下面的代码,但它仍然无法正常工作。 EditText editor = ….; LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1); editor.setLayoutParams(params); editor.setGravity(Gravity.LEFT | Gravity.TOP); editor.setBackgroundColor(Color.WHITE); editor.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); editor.setTextColor(Color.BLACK); //editor.setSingleLine(false); editor.setFocusableInTouchMode(true); editor.setInputType(EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE | EditorInfo.TYPE_TEXT_FLAG_IME_MULTI_LINE); editor.setMaxLines(Integer.MAX_VALUE); editor.setHorizontallyScrolling(false); editor.setTransformationMethod(null); 上面的代码让我input了几行代码,键盘上显示“ENTER”button,但是当我在edittext上input时,如果宽度不足以显示文本,编辑文本会水平滚动。 任何人都可以帮助我如何使edittext多行?