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.