androidedittext粘貼
A. Android中怎麼將一個edittext里的文本傳到另一個edittext中
edittext控制項有監聽事件,在事件中獲取第一個edittext中的字元串,然後用setText方法顯示到第二個edittext中,這樣邊輸入邊顯示。
B. android 開發怎麼讓 edittext的內容不可以被復制
setLongClickable(false);
你試試看。
edittext空間本身沒有復制粘貼的功能,你把復制粘貼的代碼刪掉就行了
C. Android的EditText長按只顯示上面的復制粘貼菜單,不要彈出下面的輸入法鍵盤怎麼做
4.0以上的API禁止EditText彈出鍵盤需要這樣寫:
4.0的是setShowSoftInputOnFocus,4.2的是setSoftInputOnFocus。
java">EditTexteditText;
//editText的實例化我不寫了
InputMethodManagerimm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(e1.getWindowToken(),0);
try{
Class<EditText>cls=EditText.class;
setSoftInputShownOnFocus=cls.getMethod("setShowSoftInputOnFocus",boolean.class);
setSoftInputShownOnFocus.setAccessible(true);
setSoftInputShownOnFocus.invoke(editText,false);
}catch(Exceptione){
e.printStackTrace();
}
並且還要在配置文件裡面加上android:windowSoftInputMode="stateHidden"
4.0以下的可用editText.setInputType(InputType.TYPE_NULL);
或者直接在XML進行屬性設置。
如果對4.0以上系統的操作這句代碼,EditText將會沒有游標。
D. 如何捕獲Edittext的粘貼方法
以下是TextView(EditText extends TextView)對於復制黏貼的實現過程:
[Java] 純文本查看 復制代碼
public boolean onTextContextMenuItem(int id) {
... ...
ClipboardManager clip = (ClipboardManager)getContext().getSystemService(Context.CLIPBOARD_SERVICE);
switch (id) {
... ...
case ID_COPY:
clip.setText(mTransformed.subSequence(min, max));
stopTextSelectionMode();
return true;
case ID_PASTE:
CharSequence paste = clip.getText();
if (paste != null && paste.length() > 0) {
long minMax = prepareSpacesAroundPaste(min, max, paste);
min = extractRangeStartFromLong(minMax);
max = extractRangeEndFromLong(minMax);
Selection.setSelection((Spannable) mText, max);
((Editable) mText).replace(min, max, paste);
stopTextSelectionMode();
}
return true;
textview的所有源碼,可以參考:
TextView.zip (57.92 KB, 下載次數: 169)
實現思路(這個是給復制文本添加內容,比如前綴。正則表達式可以在獲得的內容中進行判斷):
[Java] 純文本查看 復制代碼
public class MyEditText extends EditText {
private static final int ID_PASTE = android.R.id.paste;
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTextContextMenuItem(int id) {
if(id == ID_PASTE){
ClipboardManager clip = (ClipboardManager)getContext().getSystemService(Context.CLIPBOARD_SERVICE);
clip.setText("[color=#ff0000]APKBus==>[/color]"+clip.getText());
}
return super.onTextContextMenuItem(id);
}
}
布局:
[XHTML] 純文本查看 復制代碼
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.example.customeredittexttest.MyEditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="50dip"
android:layout_alignParentTop="true"
/>
</RelativeLayout>
E. android如何實現復制/粘貼功能
/**
*Android用於復制粘貼數據的框架CopyandPaste。支持簡單和復雜的數據,包括本文(Text)、
*復雜的數據結構(textandbinarystreamdata)、數據流(Stream)、程序asset等。
*/
{
privateEditText_edt,paste_edt;
privateButton_btn,paste_btn;
//剪切板管理工具類
;
//剪切板Data對象
privateClipDatamClipData;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mClipboardManager=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
initViews();
initListeners();
}
privatevoidinitViews(){
this._btn=(Button)findViewById(R.id._btn);
this.paste_btn=(Button)findViewById(R.id.paste_btn);
this._edt=(EditText)findViewById(R.id._edt);
this.paste_edt=(EditText)findViewById(R.id.paste_edt);
}
privatevoidinitListeners(){
this._btn.setOnClickListener(this);
this.paste_btn.setOnClickListener(this);
}
@Override
publicvoidonClick(Viewv){
String=_edt.getText().toString().trim();
switch(v.getId()){
caseR.id._btn:
if(TextUtils.isEmpty()){
Toast.makeText(getApplicationContext(),"請輸入內容!",
Toast.LENGTH_SHORT).show();
return;
}
//創建一個新的文本clip對象
mClipData=ClipData.newPlainText("Simpletest",);
//把clip對象放在剪貼板中
mClipboardManager.setPrimaryClip(mClipData);
Toast.makeText(getApplicationContext(),"文本已經復製成功!",
Toast.LENGTH_SHORT).show();
break;
caseR.id.paste_btn:
//GET貼板是否有內容
mClipData=mClipboardManager.getPrimaryClip();
//獲取到內容
ClipData.Itemitem=mClipData.getItemAt(0);
Stringtext=item.getText().toString();
paste_edt.setText(text);
Toast.makeText(getApplicationContext(),"粘貼成功!s",
Toast.LENGTH_SHORT).show();
break;
}
}
}
F. android如何禁止edittext復制粘貼
禁止edittext復制粘貼有以下幾種情況,需要區別對待:
1、在API-11以下的版本只需要在Xml布局文件或者用代碼把長按屬性設置成false就可以;代碼如下:
editText.setLongClickable(false);//Xmllayoutfileandroid:longClickable="false"
2、在API-11及以上的話,取消長按就不能完全有效了,最根本的是無效化選擇的操作;代碼如下:
editText.(newActionMode.Callback(){
@Override
(ActionModemode,Menumenu){
returnfalse;
}
@Override
publicvoidonDestroyActionMode(ActionModemode){
}
@Override
(ActionModemode,Menumenu){
returnfalse;
}
@Override
(ActionModemode,MenuItemitem){
returnfalse;
}
});
注意:EditText在橫屏編輯的時候會出現一個新的不同的編輯界面,這個界面里還是可以復制粘貼的,因此也要取消這個額外的UI:
editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);//android:imeOptions="flagNoExtractUi"
G. android類似EditText復制粘貼板功能
用popwindow,有個showatLocation方法,至於參數就用你當前的位置來想辦法生成。
H. Android EditText如何禁止彈出復制粘貼菜單
禁止長按。我的版本是4.4的可以啊。
在xml裡面定義的:
<EditText android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:longClickable="false" />
I. 你好,請問一下如何才能實現對安卓中的輸入框輸入的文字進行自動全選復制和粘貼啊
直接在edittext中長按,系統就會自動彈出菜單, 可以全選,剪切,復制,粘貼的, 自己試試吧。注意要在edittext的內容中長按才有效.
J. 怎樣禁掉Android中EditText控制項的粘貼功能
你可以這樣:用自定義View解決這個問題.
重寫EditText類.繼承EditText,裡面要重寫高度之類的方法,具體可以搜一下.
重寫EditText的
public
boolean
onTextContextMenuItem(int
id)
{
return
super.onTextContextMenuItem(id);
}
方法,根據id判斷當前操作:
id:16908319
全選
id:16908328
選擇
id:16908320
剪貼
id:16908321
復制
id:16908322
粘貼
id:16908324
輸入法
在監聽里你就可以做判斷然後不讓這個方法響應就ok了
xml文件中引入自定義view,這個和v4包widget引用的方法一樣
我所能想到的就是這個方法了.