【问题标题】:Click on link on custom adapter单击自定义适配器上的链接
【发布时间】:2016-06-19 12:49:57
【问题描述】:

我已经覆盖了我的 CustomTweetTimelineListAdapter 类下面的 OnClikListener 和示例并且工作正常,但是当推文包含 URL 时,未检测到对链接的点击并调用适配器 OnClicklistener 操作,如果单击链接,则可以进行打开 url 而不是使适配器 OnClickListener 动作?

打包client.tclient.com.client;

import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;

import com.twitter.sdk.android.core.models.Tweet;
import com.twitter.sdk.android.tweetui.Timeline;
import com.twitter.sdk.android.tweetui.TweetTimelineListAdapter;

/**
 * Created by alvaro on 13/06/16.
 */
public class CustomTweetTimelineListAdapter extends TweetTimelineListAdapter implements Adapter{

    private Context context;
    /**
     * Constructs a TweetTimelineListAdapter for the given Tweet Timeline.
     *
     * @param context  the context for row views.
     * @param timeline a Timeline<Tweet> providing access to Tweet data items.
     * @throws IllegalArgumentException if timeline is null
     */
    public CustomTweetTimelineListAdapter(Context context, Timeline<Tweet> timeline) {
        super(context, timeline);
        this.context = context;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);

        //disable subviews
        if(view instanceof ViewGroup){
            disableViewAndSubViews((ViewGroup) view);
        }

        //enable root view and attach custom listener
        view.setEnabled(true);
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Long tweetId = getItemId(position);
                Intent intent = new Intent(context,TweetActivity.class);
                intent.putExtra("TWEET_ID", tweetId);
                context.startActivity(intent);
            }
        });
        return view;
    }
    private void disableViewAndSubViews(ViewGroup layout) {
        layout.setEnabled(false);
        for (int i = 0; i < layout.getChildCount(); i++) {
            View child = layout.getChildAt(i);
            if (child instanceof ViewGroup) {
                disableViewAndSubViews((ViewGroup) child);
            } else {
                child.setEnabled(false);
                child.setClickable(false);
                child.setLongClickable(false);
            }
        }
    }
}

【问题讨论】:

  • 你查看this的答案了吗?也许在返回的字符串中“监听/检查”url?
  • 或者在TextView中使用android:autoLink

标签: android android-adapter twitter-fabric


【解决方案1】:

您的视图应该包含链接的引用,假设它是TextView 并为该子视图定义一个监听器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多