Red de conocimiento informático - Material del sitio web - Cómo capturar el método de pegado de Edittext

Cómo capturar el método de pegado de Edittext

La siguiente es la implementación de TextView (EditText extiende TextView) para copiar y pegar:

[Java] Código de copia de vista de texto sin formato

public boolean onTextContextMenuItem(int) {

... ...

ClipboardManager clip = (ClipboardManager)getContext().getSystemService(Context.CLIPBOARD_SERVICE);

cambiar (id) {

... ...

caso ID_COPY:

clip.setText(mTransformed.subSequence(min, max));

stopTextSelectionMode();

devuelve verdadero;

caso ID_PASTE:

Pegar CharSequence = clip.getText();

if (pegar! = amplificador nulo ;amp; pegar.length() gt; 0) {

long minMax = prepareSpacesAroundPaste(min, max, pegar);

min = extractRangeStartFromLong (minMax);

max = extractRangeEndFromLong(minMax);

Selection.setSelection((Spannable) mText, max);

((Editable) mText).replace(min, max, pegar );

stopTextSelectionMode();

}

return true;

Todo el código fuente de textview se puede encontrar en el siguiente sitio web. :

TextView.zip (57,92 KB, Descargas: 169)

Método de implementación (este método agregará contenido, como prefijos, al texto copiado.

Las expresiones regulares se pueden juzgar en el contenido obtenido):

[Java] Código de copia de vista de texto sin formato

clase pública MyEditText extiende EditText {

privado static final int ID_PASTE = android .R.id.paste;

public MyEditText(Contexto contexto, AttributeSet atributos) {

super(contexto, atributos);

}

@Override

public boolean onTextContextMenuItem(int id) {

if(id == ID_PASTE){

ClipboardManager clip = ( ClipboardManager )getContext().getSystemService(Context.CLIPBOARD_SERVICE);

clip.setText("[color=#ff0000]APKBus==gt;[/color]" clip.getText());

p>

ClipboardManager clip = (ClipboardManager)getContext()getText());

}

return super.onTextContextMenuItem(id);

}

}

Diseño:

[XHTML] Código de copia de vista de texto sin formato

lt; xmlns .android="/apk/res/android"

xmlns: tools="/tools"

android: layout_width="match_parent"

android: layout_height ="match _parent" gt;

lt; com.example.customeredittexttest.MyEditText

android:id="@id/edit"

android: layout_width ="match_ parent"

android: layout_height="50dip"

android: layout_alignParentTop="true"

/gt;

lt;/RelativeLayoutgt;