你好,stackoverflow社區!Android:水平滾動,可展開的文本不能一起工作
我有一個小問題,在Google上搜索了幾天後,我想尋求您的幫助。
我想要達到的目標是在Android中使用可點擊的部件在滾動文本。到目前爲止,滾動部分正在工作,並且點擊到,但遺憾的是,當我單擊整個文本的跨度時,只有與第一個跨度鏈接的onClick偵聽器被調用,而且從來沒有鏈接到跨度的那個被點擊。
這裏是我到目前爲止的代碼(因爲Xamarin的C#代碼):
SpannableStringBuilder scrollingTextBuilder = new SpannableStringBuilder();
foreach(DataStruct detail in dbExchange.DataList)
{
SpannableStringBuilder singleTextBuilder = new SpannableStringBuilder(detail.timeSlot + ": " + detail.videoName);
singleTextBuilder.SetSpan(new SpanClickHelper(detail.videoID), 0, singleTextBuilder.Length(), SpanTypes.ExclusiveExclusive);
scrollingTextBuilder.Append(singleTextBuilder);
}
TextView scrollingTextView = (TextView) FindViewById(Resource.Id.scrollingTextView);
scrollingTextView.MovementMethod = LinkMovementMethod.Instance;
scrollingTextView.SetText(scrollingTextBuilder, TextView.BufferType.Spannable);
scrollingTextView.StartAnimation((Animation)AnimationUtils.LoadAnimation(this, Resource.Animation.scrollAnim));
而這裏SpanClickHelper類:
public class SpanClickHelper : ClickableSpan
{
private string videoID;
public SpanClickHelper(string videoID)
{
this.videoID = videoID;
}
#region implemented abstract members of ClickableSpan
public override void OnClick(global::Android.Views.View widget)
{
Console.WriteLine("clicked: " + videoID);
}
#endregion
}
我希望你知道一個或兩個尖讓我上正確的軌道。希望我沒有完全錯誤的旅行。
你檢查是否每一個細節有不同的detail.videoID? – pskink
@pskink是的,他們都有不同的值 – Nyanko
而不是WriteLining videoID嘗試WriteLine HashCode() – pskink