如何使EditText看起来像用Java完成而不是用XML完成的TextView。
我已经看过如何使用像
这样的xml文件style="@android:style/Widget.TextView"
android:editable="false"
android:cursorVisible="false"
android:longClickable="false"
但是我希望这可以在java中完成,因为我没有使用任何xml文件进行布局。 一切都在代码本身完成.. 我试图在我的代码中使用GestureListener ..它适用于TextView但不适用于EditText 那么,可以为EditText做些什么来实现GestureEvents?
谢谢,
答案 0 :(得分:7)
EditText Et; // initialize your edittext//
Et.setCursorVisible(false);
Et.setLongClickable(false);
Et.setClickable(false);
Et.setFocusable(false);
Et.setSelected(false);
Et.setKeyListener(null);
Et.setBackgroundResource(android.R.color.transparent);
你再也不会像EditText那样看到它了。
答案 1 :(得分:3)
在edittext xml中添加以下两行:
android:focusable="false"
android:inputType="none"
答案 2 :(得分:2)
EditText
是TextView
的子类 - 所以除了编辑之外,适用于TextView
的内容也适用于EditText
。
答案 3 :(得分:0)
只需为EditText添加边框: 首先在Resources / Drawable中添加border.xml
<?xml version="1.0" encoding="utf-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="#ffffff" />
<stroke android:width="1dip" android:color="#000000"/>
</shape>
第二步: 添加android:background =&#34; @ drawable / border&#34;到TextView
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:inputType="date"
android:layout_column="1"
android:id="@+id/dateFromTextView"
android:layout_marginRight="3dp"
android:background="@drawable/border"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_gravity="center"
android:gravity="center" />
答案 4 :(得分:0)
嗯,我知道这是一个非常古老的问题,但我必须这样做我的一个应用程序,并提出了一个简单的方法,从谷歌/堆栈溢出的所有答案中推断出来。假设你想让编辑文本看起来像文本视图,点击按钮使其可编辑,程序如下:
在您的布局中,设置:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txt_postContent"
android:textSize="17sp"
android:gravity="top|left"
android:text="This is a dummy text "
android:layout_below="@+id/img_empimage"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:enabled="false"
android:background="@android:color/transparent"
style="?android:attr/textViewStyle" />
在.java
中设置文字的颜色:
yourEditText.setTextColor(Color.parseColor("#000000"));
在输入按钮的onClick
之前。在onClick
按钮中:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(postContent, InputMethodManager.SHOW_IMPLICIT);//shows keyboard
int position = postContent.length();
Editable text = postContent.getText();
yourEditText.setBackground(getResources().getDrawable(R.drawable.border));//shows a border around your text view making it look like a edit text
yourEditTex.setEnabled(true);//enables the edit text which we disabled in layout file
yourEditTex.setCursorVisible(true);
Selection.setSelection(text,position-1);`//places the cursor at the end of the text
现在,在另一个按钮的textView
上将编辑文字再次显示为onClick
:
String s = postContent.getText().toString();
yourEditText.setText(s);
yourEditText.setEnabled(false);
yourEditText.setTextColor(Color.parseColor("#000000"));
yourEditText.setBackground(null);`
我的回答涵盖两到三个问题,但我希望它会有所帮助。
答案 5 :(得分:0)
使EditText在代码
中表现为TextView试试这个 在您的布局中,设置:
<EditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:inputType="none"
android:imeOptions="actionDone"
android:enabled="false"
style="?android:attr/textViewStyle" />
答案 6 :(得分:0)
这就是创建效果所需要的。
在代码中:
Main.js
在布局中:
ET.setFocusable(false);
在布局中设置背景完全删除下栏,就像只是将其隐藏在代码中一样。
使用以下命令再次将其编辑:
android:background="@android:color/transparent"