在本文中,我们将实现与TextView相关的非常重要的功能。在这里,我们将字符串或子字符串的一部分用作子字符串。在编写博客时,此功能很重要,因为对于某些点,我们可能希望将用户重定向到链接。因此,在这里我们将学习如何实现该功能。下面给出了一个示例GIF,以使我们对本文中要做的事情有一个了解。注意,我们将使用Java语言实现该项目。
分步实施
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。
步骤2:使用activity_main.xml文件
导航到应用程序> res>布局> activity_main.xml,然后将以下代码添加到该文件中。以下是activity_main.xml文件的代码。
XML
Java
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.text_view);
String text = "First Click THIS and then THIS ";
SpannableString ss = new SpannableString(text);
// creating clickable span to be implemented as a link
ClickableSpan clickableSpan1 = new ClickableSpan() {
public void onClick(View widget) {
Toast.makeText(MainActivity.this, "First Clickable Text", Toast.LENGTH_SHORT).show();
}
};
// creating clickable span to be implemented as a link
ClickableSpan clickableSpan2 = new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(MainActivity.this, "Second Clickable Text", Toast.LENGTH_SHORT).show();
}
};
// setting the part of string to be act as a link
ss.setSpan(clickableSpan1, 12, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(clickableSpan2, 26, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
}
步骤3:使用MainActivity。 Java文件
转到MainActivity。 Java文件并参考以下代码。下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。
Java
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.text_view);
String text = "First Click THIS and then THIS ";
SpannableString ss = new SpannableString(text);
// creating clickable span to be implemented as a link
ClickableSpan clickableSpan1 = new ClickableSpan() {
public void onClick(View widget) {
Toast.makeText(MainActivity.this, "First Clickable Text", Toast.LENGTH_SHORT).show();
}
};
// creating clickable span to be implemented as a link
ClickableSpan clickableSpan2 = new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(MainActivity.this, "Second Clickable Text", Toast.LENGTH_SHORT).show();
}
};
// setting the part of string to be act as a link
ss.setSpan(clickableSpan1, 12, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(clickableSpan2, 26, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
}
输出: