2013-07-03 36 views
1

我需要我的ClickableSpan来改变它们被触摸时的链接背景。 那是我的代码:clickablespan改变颜色ACTION_DOWN(onTouch)

holder.text.setMovementMethod(LinkMovementMethod.getInstance()); 
    holder.text.setText(addClickablePart(post.getTweet().getText()), BufferType.SPANNABLE); 

    private SpannableStringBuilder addClickablePart(String str) { 
SpannableStringBuilder ssb = new SpannableStringBuilder(str); 

int idx1 = str.indexOf("#"); 
int idx2 = 0; 
while (idx1 != -1) { 
    idx2 = str.indexOf(" ", idx1); 
    if(idx2 == -1) { 
     idx2 = str.length(); 
    } 

    final String clickString = str.substring(idx1, idx2); 
    ssb.setSpan(new ClickableSpan() { 
     @Override 
       public void updateDrawState(TextPaint ds) { 
      ds.setUnderlineText(false); 
        super.updateDrawState(ds); 
       } 

       @Override 
     public void onClick(View widget) { 
      if(clickString.startsWith("#")) { 
       Toast.makeText(getView().getContext(), "left", 
       Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }, idx1, idx2, 0); 
    idx1 = str.indexOf("#", idx2); 
} 

我不知道怎样才能把它关闭... 任何想法?

回答

0

尝试使用XML的背景是这样的: 放在您绘制的文件夹 并设置你转子:

android:background="@drawable/YOUR_XML_FILE" 

xml文件

<?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true"> 
    <shape 

    ///WHEN PRESSED TO CODE HERE WILL BE ACTIVATED/// 

    </shape> 
    </item> 
<item> 
    <shape 

    ////YOU CODE FOR WHEN NOT PRESSED/// 

    </shape> 
    </item> 
</selector> 
+0

我试过了...没有工作。 – roiberg

+0

你为每个状态放2种不同的颜色? – dasdasd

+0

当然,那就是我所做的。它没有工作。 – roiberg