【问题标题】:OClickItem of twitter listViwe Fabric Kittwitter listViwe Fabric Kit的OClickItem
【发布时间】:2014-12-26 13:38:02
【问题描述】:

我正在将 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);
    }
}); 

【问题讨论】:

  • 您找到答案的任何更改?我在同一条船上
  • 我查看了代码,发现在 BaseViewTweet 类中他们正在触发一个意图 Intent intent = new Intent("android.intent.action.VIEW", this.getPermalinkUri());因此我们可以通过扩展和覆盖方法来改变它。
  • 使用 android:scheme="https" 为 android.intent.action.VIEW 添加一个意图过滤器,您将捕捉到被触发的意图。但我仍然更喜欢一种覆盖 onCLickListener 的方法。
  • @sahu 几天前我问了一些东西,但我可以覆盖该方法。有什么办法可以消除这个动作 Intent intent = new Intent ("android.intent.action.VIEW"? (stackoverflow.com/questions/29933868/… -using-fabric-sdk)
  • @pgutierrez 在 BaseTweetView 类中有一个名为 SetPermaLinkLauncher 的私有方法,该方法正在设置此意图触发操作。现在因为它是私有的,我想不出任何方法来覆盖这个方法。顺便说一句,您是如何覆盖 onClickListener 的?在覆盖它时,我的行为没有任何变化。我仍然有应用选择器菜单。

标签: android twitter-fabric


【解决方案1】:

正如我在this question 上建议的那样,您可以尝试创建一个自定义适配器来覆盖推文的默认 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

}

完整代码示例here

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2015-06-16
    • 2018-02-17
    • 2017-11-05
    • 2015-03-20
    • 1970-01-01
    • 2017-06-05
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多