安卓控件使用系列3:TextView点击连接跳转页面

时间:2021-05-30 22:41:24

TextView点击链接跳转页面的方法分享给大家,这里用到的方法有些开发人员并没有接触过。

整体思路:将在TextView中显示的文字转换为SpannableString对象,这个SpannableString对象调用setSpan方法,实现跳转页面的功能,把这个SpannableString对象设置为TextView的Text值,并以链接的形式显示。

activity_main.xml文件:

 <TextView
        android:id="@+id/textview1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"/>
     <TextView
        android:id="@+id/textview2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:layout_marginTop="20dp"/>
MainActivity.java文件:

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextView textView=(TextView)findViewById(R.id.textview1);
		TextView textView2=(TextView)findViewById(R.id.textview2);
		
		String text1="显示Activity1";
		String text2="显示Activity2";
		
		SpannableString spannableString=new SpannableString(text1);
		SpannableString spannableString2=new SpannableString(text2);
		spannableString.setSpan(new ClickableSpan() {
			
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent=new Intent(MainActivity.this,Activity1.class);
				startActivity(intent);
			}
		}, 0, text1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		spannableString2.setSpan(new ClickableSpan() {
			
			public void onClick(View widget) {
				// TODO Auto-generated method stub
				Intent intent=new Intent(MainActivity.this,Activity2.class);
				startActivity(intent);
			}
		}, 0, text2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		textView.setText(spannableString);
		textView2.setText(spannableString2);
		textView.setMovementMethod(LinkMovementMethod.getInstance());
		textView2.setMovementMethod(LinkMovementMethod.getInstance());
	}<span style="color:#cc33cc;">
</span>
Activity1.java文件:

setTitle("活动1");
Activity2.java文件:

setTitle("活动2");