1

我正在尝试在 android studio 中构建一个应用程序,该应用程序在列表视图中显示来自用户的推文列表,然后用户可以选择一个并将推文文本转移到另一个活动。

我使用以下代码设置了一个带有手动输入的字符串数组的 onitemclicklistener,并且效果很好:

final Intent i = new Intent(this, ResultsActivity.class);

myListView.setOnItemClickListener(
            new AdapterView.OnItemClickListener(){
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    String tweet = String.valueOf(parent.getItemAtPosition(position));
                    i.putExtra("tweetMessage", tweet);
                    startActivity(i);
                }
            }

    );

但是现在我已经使用 Twitter Kit 的 TweetUI Show Timelines 函数来显示来自用户的推文列表,我不再能够设置 onclick 监听器。当我点击一条推文时,它会打开网络浏览器并在 Twitter 的网站上显示该推文。

我似乎无法像以前使用“myListView.setOnItemClickListener”那样定位列表视图,因为列表视图称为 android::list,这似乎是 TwitterUI 所需的名称。我已经使用以下代码设置了活动,其中没有提及列表视图名称,所以我认为这是内置在 TwitterUI 中的:

final UserTimeline userTimeline = new UserTimeline.Builder()
            .screenName("antijokes")
            .build();
    final TweetTimelineListAdapter adapter = new TweetTimelineListAdapter.Builder(this)
            .setTimeline(userTimeline)
            .build();
    setListAdapter(adapter);

有谁知道是否有办法为列表视图设置 onitemclick 侦听器?TIA

4

1 回答 1

0

尝试在适配器上设置动作回调

setOnActionCallback (Callback actionCallback) 设置在 Tweet 视图上执行 Tweet 操作时调用的回调。

    final UserTimeline userTimeline = new UserTimeline.Builder()
                                        .screenName(userName)
                                        .maxItemsPerRequest(5)
                                        .build();
    Callback<Tweet> actionCallback = new Callback<Tweet>() {
        @Override
        public void success(Result<Tweet> result) {}

        @Override
        public void failure(TwitterException exception) {}
    };
    final TweetTimelineRecyclerViewAdapter adapter =
            new TweetTimelineRecyclerViewAdapter.Builder(getActivity())
                    .setTimeline(userTimeline)
                    .setViewStyle(R.style.tw__TweetLightWithActionsStyle)
                    .setOnActionCallback(actionCallback)
                    .build();
于 2017-11-06T09:42:38.430 回答