1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android edittext不可复制_Android中使EditText只读的方法(可恢复编辑状态)

android edittext不可复制_Android中使EditText只读的方法(可恢复编辑状态)

时间:2019-07-02 08:27:35

相关推荐

android edittext不可复制_Android中使EditText只读的方法(可恢复编辑状态)

可以通过以下几种方法实现EditText的只读属性

1. 方法一:使用EditText的android:Editable属性

将EditText的Editable属性设置为false后,EditText就成只读了,缺点是不能在java代码中动态设置,而且这个属性android官方已经不推荐使用了,官方的解释是要想一个view可编辑(Editable=true)可以用EditText,不可编辑用TextView就可以了 8-O

2. 方法二:使用TextView替代

既然TextView和EditText就差一个可编辑,那么用一个TextView去替代EditText好了。只读的时候显示TextView隐藏EditText,编辑的时候显示EditText隐藏TextView,不过TextView必须和EditText用同样的样式,以不让用户查觉到组件变换了。本人没亲测这种方法,大家有兴趣的话可以试试。

3. 方法三:设置EditText的keylistener来实现

代码不多,直接把完整的代码贴出来吧

Java

package com.bcoder.study.edittextapp;

import android.content.Context;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.text.method.KeyListener;

import android.view.View;

import android.view.inputmethod.InputMethodManager;

import android.widget.EditText;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

EditText edt1;

KeyListener storedKeylistener;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

edt1 = (EditText) findViewById(R.id.editText);

// 保存默认的KeyListener以便恢复

storedKeylistener = edt1.getKeyListener();

}

public void setReadOnly(View v){

// 设置KeyListener为null, 变为不可输入状态

edt1.setKeyListener(null);

// 如果需要,设置文字可选

edt1.setTextIsSelectable(true);

}

public void setEditable(View v){

// 可编辑时弹出软键盘

final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

imm.showSoftInput(edt1, 0);

// 恢复KeyListener

edt1.setKeyListener(storedKeylistener);

// 如果需要,设置文字可选

edt1.setTextIsSelectable(true);

// 恢复KeyListener后,键盘不会自动弹出,要通过代码弹出

edt1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

imm.showSoftInput(edt1, 0);

}

});

// 将光标定位到最后

edt1.setSelection(edt1.getText().length());

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

packagecom.bcoder.study.edittextapp;

importandroid.content.Context;

importandroid.support.v7.app.AppCompatActivity;

importandroid.os.Bundle;

importandroid.text.method.KeyListener;

importandroid.view.View;

importandroid.view.inputmethod.InputMethodManager;

importandroid.widget.EditText;

importandroid.widget.TextView;

publicclassMainActivityextendsAppCompatActivity{

EditTextedt1;

KeyListenerstoredKeylistener;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

edt1=(EditText)findViewById(R.id.editText);

// 保存默认的KeyListener以便恢复

storedKeylistener=edt1.getKeyListener();

}

publicvoidsetReadOnly(Viewv){

// 设置KeyListener为null, 变为不可输入状态

edt1.setKeyListener(null);

// 如果需要,设置文字可选

edt1.setTextIsSelectable(true);

}

publicvoidsetEditable(Viewv){

// 可编辑时弹出软键盘

finalInputMethodManagerimm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

imm.showSoftInput(edt1,0);

// 恢复KeyListener

edt1.setKeyListener(storedKeylistener);

// 如果需要,设置文字可选

edt1.setTextIsSelectable(true);

// 恢复KeyListener后,键盘不会自动弹出,要通过代码弹出

edt1.setOnClickListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

imm.showSoftInput(edt1,0);

}

});

// 将光标定位到最后

edt1.setSelection(edt1.getText().length());

}

}

布局文件代码

XHTML

xmlns:tools="/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.bcoder.study.edittextapp.MainActivity">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText"

android:layout_alignParentTop="true"

android:layout_alignParentLeft="true"

android:layout_alignParentStart="true"

android:layout_alignParentRight="true"

android:layout_alignParentEnd="true"

android:singleLine="false"

android:lines="5"

android:text="" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Readonly"

android:id="@+id/button"

android:layout_below="@+id/editText"

android:layout_centerHorizontal="true"

android:layout_marginTop="74dp"

android:onClick="setReadOnly" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Editable"

android:id="@+id/button2"

android:layout_below="@+id/button"

android:layout_centerHorizontal="true"

android:onClick="setEditable" />

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

xmlns:tools="/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.bcoder.study.edittextapp.MainActivity">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/editText"

android:layout_alignParentTop="true"

android:layout_alignParentLeft="true"

android:layout_alignParentStart="true"

android:layout_alignParentRight="true"

android:layout_alignParentEnd="true"

android:singleLine="false"

android:lines="5"

android:text=""/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Readonly"

android:id="@+id/button"

android:layout_below="@+id/editText"

android:layout_centerHorizontal="true"

android:layout_marginTop="74dp"

android:onClick="setReadOnly"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Editable"

android:id="@+id/button2"

android:layout_below="@+id/button"

android:layout_centerHorizontal="true"

android:onClick="setEditable"/>

打赏

微信扫一扫,打赏作者吧~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。