在本文中,我们将实现与TextView相关的非常重要的功能。在使用任何社交媒体应用程序或像使用Facebook一样,您可能已经看到了某种特定类型的TextView,您无法像人们在其帖子上写的标题一样复制它。您可以选择该消息,但是很少有文本无法选择或复制。因此,在这里我们将学习如何实现该功能。
为TextView实现此功能
方法1
步骤1:使用activity_main.xml文件
导航到应用程序> res>布局> activity_main.xml,然后将以下代码添加到该文件中。以下是activity_main.xml文件的代码。
XML
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);
}
}
XML
XML
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;
}
});
}
}
步骤2:使用MainActivity。 Java文件
这可以使我们的文本被选中,然后我们可以复制该文本
select.setTextIsSelectable(true);
这将使我们的文本无法被选择,甚至默认情况下将其设置为false。因此,您无法在默认模式下选择文本
select.setTextIsSelectable(false);
转到MainActivity。 Java文件并参考以下代码。下面是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);
}
}
方法二
在XML文件中进行更改。在您的TextView中添加此行。
android:textIsSelectable="true"
XML格式
输出:
为EditText实现此功能
步骤1:使用activity_main.xml文件
导航到应用程序> res>布局> activity_main.xml,然后将以下代码添加到该文件中。以下是activity_main.xml文件的代码。我们将创建一个简单的EditText 。
XML格式
步骤2:使用MainActivity。 Java文件
转到MainActivity。 Java文件并参考以下代码。下面是MainActivity的代码。 Java文件。在EditText中默认情况下,我们可以选择文本。首先,我们将光标隐藏在layout.xml文件中
android:cursorVisible="false"
并添加了一个事件监听器以供长按,并且仅在选择开始时才显示光标。
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;
}
});
}
}
输出: