EditView與TextView如何實現長按複製、貼上、選擇
阿新 • • 發佈:2019-02-08
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的系統不行,大家可以根據需求針對性測試下。