2011-02-14 13 views
7

Cómo hacer un EditarTexto parezca un TextView que se hace en Java, pero no en XML ..EditarTexto comportarse como un TextView en el código

he visto cómo hacerlo usando el archivo XML como

style="@android:style/Widget.TextView" 
android:editable="false" 
android:cursorVisible="false" 
android:longClickable="false" 

pero quiero que esto se haga en Java porque no estoy usando ningún archivo xml para el diseño .. todo se hace en el código en sí ... Estoy tratando de usar GestureListener en mi código ... funcionó bien para TextView pero no EditText Entonces, ¿hay algo que hacer para EditText para que GestureEvents se pueda implementar?

Gracias,

+0

pravin

Respuesta

2

EditText es una subclase de TextView - por lo que a excepción de la edición, lo que se aplica a TextView aplica a EditText también.

+2

sí ... pero estoy tratando de usar escuchas de gestos en EditText ... funciona bien para TextView pero no para EditText –

1

Haga EditarTexto comportarse como un TextView en el código

probar esto

 android:longClickable="false" 
     android:clickable="false"  
     android:cursorVisible="false" 
     android:editable="false" 
0

Sólo tiene que añadir una frontera a EditarTexto: Primero de todo añadir un border.xml en Recursos/Disponibles

<?xml version="1.0" encoding="utf-8" ?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > 
    <solid android:color="#ffffff" /> 
    <stroke android:width="1dip" android:color="#000000"/> 
</shape> 

Segundo paso: agregar a android: background = "@ drawa ble/frontera" a TextView

<TextView 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:layout_height="wrap_content" 
        android:inputType="date" 
        android:layout_column="1" 
        android:id="@+id/dateFromTextView" 
        android:layout_marginRight="3dp" 
        android:background="@drawable/border" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:layout_gravity="center" 
        android:gravity="center" /> 
5
EditText Et; // initialize your edittext// 

Et.setCursorVisible(false); 
Et.setLongClickable(false); 
Et.setClickable(false); 
Et.setFocusable(false); 
Et.setSelected(false); 
Et.setKeyListener(null); 
Et.setBackgroundResource(android.R.color.transparent); 

Y nunca lo verá como un EditarTexto nuevo.

+0

¡Muchas gracias! Me salvó el día. Lo hice: 'editText.setFocusable (enable);' 'editText.setFocusableInTouchMode (enable);' 'editText.setLongClickable (enable);' –

0

Bueno, sé que esta era una pregunta muy antigua, pero tengo que hacer esta una de mis aplicaciones y se me ocurrió un enfoque simple deducido de todas las respuestas de Google/stack overflow. Supongamos que quieres hacer una edición de texto se parece a una vista de texto y de clic de botón hacerla editable, el procedimiento es el siguiente:

En su diseño, ajuste:

<EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/txt_postContent" 
     android:textSize="17sp" 
     android:gravity="top|left" 
     android:text="This is a dummy text " 
     android:layout_below="@+id/img_empimage" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:enabled="false" 
     android:background="@android:color/transparent" 
     style="?android:attr/textViewStyle" /> 

Y en su conjunto .java la color del texto por:

yourEditText.setTextColor(Color.parseColor("#000000")); 

antes de entrar al onClick de botón. Y en el onClick del botón:

InputMethodManager imm = (InputMethodManager)    getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(postContent, InputMethodManager.SHOW_IMPLICIT);//shows keyboard 
int position = postContent.length(); 
Editable text = postContent.getText(); 
yourEditText.setBackground(getResources().getDrawable(R.drawable.border));//shows a border around your text view making it look like a edit text 
yourEditTex.setEnabled(true);//enables the edit text which we disabled in layout file 
yourEditTex.setCursorVisible(true); 
Selection.setSelection(text,position-1);`//places the cursor at the end of the text 

ahora para hacer el programa de edición de texto de nuevo como un textView, en el onClick de otro botón:

String s = postContent.getText().toString(); 
yourEditText.setText(s); 
yourEditText.setEnabled(false); 
yourEditText.setTextColor(Color.parseColor("#000000")); 
yourEditText.setBackground(null);` 

Mi respuesta cubre dos o tres preguntas combinaron, pero Espero que sea útil.

2

añadir a continuación dos líneas en el código XML EditarTexto:

android:focusable="false" 
android:inputType="none" 
0

Hacer EditarTexto comportarse como un TextView en el código

probar esto En su diseño, ajuste:

<EditText 
      android:id="@+id/editTextPassword" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dp" 
      android:layout_marginBottom="8dp" 
      android:inputType="none" 
      android:imeOptions="actionDone" 
      android:enabled="false" 
      style="?android:attr/textViewStyle" /> 
Cuestiones relacionadas