大家好我想知道我是否可以在TextView中单击文本的特定单词来运行异步任务。基本上我在下面有一个Textview,我想突出显示" RESEND"字和&单击它来运行asynctask。我必须创建单独的textview文本" RESEND"或者有一些快捷方式bcoz如果我制作单独的Texview,它看起来不会像2个文本视图那样1.无论我使用垂直还是水平,它都会有所不同
<TextView
android:id="@+id/policy"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="4.5"
android:text="If you haven't receive the verification code,tap RESEND"
android:textColor="#000"
android:textSize="@dimen/txtss" />
答案 0 :(得分:0)
android.text.style.ClickableSpan可以解决您的问题。
SpannableString ss = new SpannableString("If you haven't receive the verification code,tap RESEND");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
//Start your async here
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
};
//p1 is index of R in RESEND, p2 is index of D in RESEND
ss.setSpan(clickableSpan, p1, p2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView textView = (TextView) findViewById(R.id.policy);
textView.setText(ss);
答案 1 :(得分:0)
您可以将xml文件中可单击的textview属性定义为 -
android:clickable="true"
和
android:onClick="clickHandler"
然后在你的活动类中创建方法clickHandler(){
并在该方法中调用aysncTask。
您也可以使用onclicklistner()
方法将textview 替换为自定义方法clickHandler
作为 -
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
你可以使用两个不同的文本视图,使用linearlayout并使用水平方向,并使textview宽度和高度包含为wrap_content。将linearlayout放在相对视图中,请参阅下面的代码 -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="If you haven't receive verification code," />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:textStyle="bold"
android:clickable="true"
android:onClick="clickHandler"
android:text="tap RESEND" />
</LinearLayout>
</RelativeLayout>