国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

TextView長按復制的實現方法(總結)

2019-10-23 18:30:45
字體:
來源:轉載
供稿:網友

有這么一個需求,用戶在瀏覽文本信息時希望長按信息就能彈出復制的選項方便保存或者在別的頁面使用這些信息。類似的,就像長按WebView或者EditText的內容就自動彈出復制選項。

這里面主要是2個特點:

1、用戶只能瀏覽文本信息而不能編輯這些文本信息;

2、用戶對著文本信息長時間點按可以彈出”復制” 選項實現復制;

網上有好多種方法可實現,也比較零散, 此處做個小結,希望有所幫助。

1、通過繼承EditText,自定義TextView

public class NewTextView extends EditText { public NewTextView(Context context) { super(context); // TODO Auto-generated constructor stub } public NewTextView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public NewTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } @Overrideprotected boolean getDefaultEditable() {//禁止EditText被編輯 return false; } }

上面很關鍵的一個方法是getDefaultEditable(), return false;即禁止EditText被編輯,變成了不可編輯的EditText,但同時具有EditText的長按復制功能。更進一步的,如果查看EditText源碼, 就發現源碼中有一個方法 protected void onCreateContextMenu(ContextMenu menu) 

控制了EditText長按彈出的上下文菜單,可以自定義這個方法且實現為空protected void onCreateContextMenu(ContextMenu menu){   }

然后在onTouchEvent事件中攔截處理自定義的點按事件,彈出自定義的菜單。

原理如上, 更直白簡單的方法是直接在xml中使用一個EditText,并且將屬性設置為 android:editable=”false” .

2、使用OnLongClickListener

直接使用TextView,然后在代碼里給TextView添加OnLongClickListener事件,長按時彈出自定義 “復制” 菜單(比如結合 PopupWindow做彈出菜單)。點擊”復制” 就去獲取TextView的內容。

當然, 這里只是獲取內容,如何將內容放入粘貼管理器還需要一個ClipboardManager 對象。它負責管理復制后粘貼的這件事。

ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); cmb.setText(content.trim()); //將內容放入粘貼管理器,在別的地方長按選擇"粘貼"即可 cm.getText();//獲取粘貼信息

 3、使用setTextIsSelectable()方法

代碼中直接對TextView使用setTextIsSelectable()方法,將TextView設置成可點按選擇的即可。

TextView tv = new TextView(context); tv.setTextIsSelectable(true);

上面就是常見的長按文本信息彈出”復制”菜單的一些方法小結了,希望對大家有所幫助.

以上這篇TextView長按復制的實現方法(總結)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南康市| 温州市| 盈江县| 万宁市| 尼勒克县| 泸西县| 攀枝花市| 新宁县| 秭归县| 汝城县| 光山县| 中方县| 华安县| 和林格尔县| 梅州市| 孝感市| 琼海市| 自治县| 平湖市| 河津市| 水城县| 鱼台县| 二手房| 汉寿县| 天祝| 上栗县| 玉屏| 宣化县| 塘沽区| 江川县| 来安县| 治县。| 芷江| 兴海县| 彰武县| 西盟| 宜兰市| 陆河县| 新乐市| 汪清县| 清水河县|