Twitter列表视图Fabric Kit的OClickItem

3

我正在使用Twitter的Fabric工具包来开发我的Android应用程序,我有一个推文列表视图。但是,当我尝试点击一条推文(项目)以打开一个新的活动(显示推文详情)时,一个应用选择器会自动出现。
看起来Twitter-API已经设置了onItemClickListener,所以我想问一下是否有人已经使用过Fabric工具包并可以提供帮助。

ListView tweetLV = (ListView) root.findViewById(R.id.list_tweets);
adapter = new TweetViewAdapter<CompactTweetView>(getActivity());
tweetLV.setAdapter(adapter);

tweetLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        String hashtag = adapter.getItem(i);
        Intent intent = new Intent(getActivity(), DetailActivity.class)
            .putExtra(Intent.EXTRA_TEXT, hashtag);
        startActivity(intent);
    }
}); 

你找到答案了吗?我也是同样的情况。 - Mark Lapasa
1
我查看了代码,发现在 BaseViewTweet 类中他们正在触发一个 Intent:Intent intent = new Intent("android.intent.action.VIEW", this.getPermalinkUri());因此,我们可以通过扩展和重写该方法进行更改。 - Pranjal Sahu
添加一个意图过滤器,用于 android.intent.action.VIEW,并使用 android:scheme="https",这样您就可以捕获到被触发的意图。但我仍然希望有一种方法来覆盖 onCLickListener。 - Pranjal Sahu
@sahu 几天前我问了一些问题,但我可以重写该方法。有没有办法消除这个行为 Intent intent = new Intent ("android.intent.action.VIEW"? (https://dev59.com/94rda4cB1Zd3GeqPKENO) - pablogupi
@pgutierrez,BaseTweetView类中有一个名为SetPermaLinkLauncher的私有方法,该方法设置了此意图触发操作。由于它是私有的,我想不到任何覆盖此方法的方式。顺便问一下,你是如何重写onClickListener的?在重写它时,我没有看到任何行为上的变化。我仍然得到了应用选择器菜单。 - Pranjal Sahu
1个回答

3

我建议你可以尝试创建一个自定义适配器来重写 tweet 的默认 onClick 行为,这个建议来源于 这篇问答

class CustomTweetTimelineListAdapter extends TweetTimelineListAdapter {

    public CustomTweetTimelineListAdapter(Context context, Timeline<Tweet> timeline) {
        super(context, timeline);
    }

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

        //disable subviews to avoid links are clickable
        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) {
                //TODO: implement your custom behavior when clicks
            }
        });
        return view;
    }

    // see full example to find helper method disableViewAndSubViews

}

完整的代码示例在这里

希望能对您有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接