1. 程式人生 > >EditView與TextView如何實現長按複製、貼上、選擇

EditView與TextView如何實現長按複製、貼上、選擇

EditView

EditText的長按事件會自動彈出上下文選單,其中有“貼上”“複製”“選擇”的功能選項,應該是呼叫了clipData.getItemCount()方法獲得要貼上的資料。這個貼上的功能系統已經實現了,不需要我們自己呼叫了。系統預設這個功能應該是存在的。
那麼如何遮蔽EditText的複製和貼上功能,只需要遮蔽EditText的長按響應即可:

 /**
  * 遮蔽複製、貼上功能
  * 
  * */ 
   mInputEditTxt.setCustomSelectionActionModeCallback(newActionMode.Callback(){
   public
boolean onCreateActionMode(ActionModeactionMode,Menumenu){ return false; } public boolean onPrepareActionMode(ActionModeactionMode,Menumenu){ return false; } public boolean onActionItemClicked(ActionModeactionMode,MenuItemmenuItem){ return false; } @Override public
void onDestroyActionMode(ActionModemode){ } }); mInputEditTxt.setLongClickable(false);
**獲得焦點時全選文字:**

EditText et = (EditText) findViewById(R.id.etTest);
et.setSelectAllOnFocus(true);

TextView

老方法:http://www.androidchina.net/1258.html
新方法:上網查詢Android開發實現長按複製文字功能的方法很多,有什麼改寫系統長按響應,有用EditView控制元件替換TextView的方法,還有自定義控制元件什麼的,總之都比較麻煩,而且效果也不好。
其實現在新的Android開發只需要增加一行程式碼就可以實現這個功能,在佈局檔案的TextView控制元件屬性中增加這麼一句就行:android:textIsSelectable=”true”
但查詢資料說只有android sdk 11起才支援,v11以下則不行了。我測試了一下在Android4沒問題,2.3的系統不行,大家可以根據需求針對性測試下。

android 改變TextView和EditText文字選中效果