ui設計
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp" />
</LinearLayout>
建立Activity1
package com.android.mytextview;
import android.app.Activity;
import android.os.Bundle;
public class Activity1 extends Activity {
public Activity1() {
// TODO Auto-generated constructor stub
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setTitle("Activity1");
}
}
建立Activity2
package com.android.mytextview;
import android.app.Activity;
import android.os.Bundle;
public class Activity2 extends Activity {
public Activity2() {
// TODO Auto-generated constructor stub
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setTitle("Activity2");
}
}
AndroidMainfest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.mytextview"
android:versionCode="1"
android:versionName="1.0" >
<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
android:name=".Main"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Activity1" >
</activity>
<activity android:name=".Activity2" >
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
Main主程式
package com.android.mytextview;
import android.app.Activity;
import android.content.Intent;
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;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView textView = (TextView) this.findViewById(R.id.textview);
TextView textView2 = (TextView) this.findViewById(R.id.textview2);
String text1 = "name:dashu";
String text2 = "name:meizi";
// 主要是用來拆分字元串
SpannableString spannableString1 = new SpannableString(text1);
SpannableString spannableString2 = new SpannableString(text2);
spannableString1.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
// 點選name跳轉到Activity1
Intent intent = new Intent(Main.this, Activity1.class);
startActivity(intent);
}
}, 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableString2.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
// 點選meizi跳轉到Activity2
Intent intent = new Intent(Main.this, Activity2.class);
startActivity(intent);
}
}, 5, text1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.append(spannableString1);
textView.append(spannableString2);
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
}
定義兩個SpannableString對象拆分字元串,并響應單擊跳轉,實作了一個TextView控件根據不同字段響應不同的點選事件.