En este artículo, vamos a implementar una función muy importante relacionada con TextView. Mientras usa cualquier aplicación de redes sociales o le gusta usar Facebook, es posible que haya visto que hay un tipo particular de TextView que no puede copiar como un título que las personas escriben en sus publicaciones. Puede seleccionar el mensaje, pero hay pocos textos que no se pueden seleccionar o copiar. Así que aquí vamos a aprender cómo implementar esa característica.
Implementando esta característica para TextView
Método 1
Paso 1: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:padding="20dp" android:gravity="center" android:orientation="vertical" tools:context=".SelectText"> <TextView android:id="@+id/select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Geeks For Geeks " android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="30dp" /> </LinearLayout>
Paso 2: trabajar con el archivo MainActivity.java
Esto es algo que permite que nuestro texto sea seleccionado y luego podemos copiar ese texto
select.setTextIsSelectable(true);
Esto deshabilita nuestro texto para ser seleccionado o incluso por defecto se establece como falso. Por lo tanto, no puede seleccionar un texto en el modo predeterminado
select.setTextIsSelectable(false);
Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java .
Java
import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import android.Manifest; import android.content.pm.PackageManager; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import org.w3c.dom.Text; public class SelectText extends AppCompatActivity { TextView select; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_select_text); select = findViewById(R.id.select); select.setTextIsSelectable(true); } }
Método 2
Realice cambios en el archivo XML. Agregue esta línea en su TextView.
android:textIsSelectable="true"
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:padding="20dp" android:gravity="center" android:orientation="vertical" tools:context=".SelectText"> <TextView android:id="@+id/select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textIsSelectable="true" android:text="Geeks For Geeks " android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="30dp" /> </LinearLayout>
Producción:
Implementando esta función para EditText
Paso 1: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml . Crearemos un EditText simple .
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:padding="20dp" android:gravity="center" android:orientation="vertical" tools:context=".SelectText"> <EditText android:id="@+id/selecte" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:cursorVisible="false" android:textSize="30dp" /> </LinearLayout>
Paso 2: trabajar con el archivo MainActivity.java
Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . En EditText Por defecto, podemos seleccionar texto. Aquí, en primer lugar, ocultaremos el cursor en el archivo layout.xml
android:cursorVisible="false"
Y agregó un detector de eventos para hacer clic largo y mostrar el cursor solo cuando comienza una selección.
selecte.setCursorVisible(true);
Java
import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import android.Manifest; import android.content.pm.PackageManager; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import org.w3c.dom.Text; public class SelectText extends AppCompatActivity { EditText selecte; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_select_text); selecte = findViewById(R.id.selecte); selecte.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { selecte.setCursorVisible(true); Toast.makeText(SelectText.this,"Visible",Toast.LENGTH_LONG).show(); return false; } }); } }
Producción: