Android Fabric Twitter时间轴

时间:2015-04-26 03:51:23

标签: android twitter-fabric

我试图在android片段中显示用户时间轴。我的HomeFragment.java onCreate()看起来像这样:

public class HomeFragment extends ListFragment {

@InjectView(android.R.id.list) ListView mTimeline;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mSectionNumber = getArguments().getInt(ARG_SECTION_NUMBER);
    }

    final UserTimeline userTimeline = new UserTimeline.Builder().screenName("fabric").build();
    final TweetTimelineListAdapter adapter = new TweetTimelineListAdapter(getActivity(), userTimeline);
    setListAdapter(adapter);

}

我的fragment_home.xml有这个listview:

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@android:id/list"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"/>

HomeFragment是HomeActivity的一个片段。此代码只显示一个空列表。我该如何解决这个问题?我还想知道setListAdapter(adapter);的工作原理。它如何知道将适配器设置到哪个列表,因为它无法在任何特定列表上调用。在编写此代码时,我使用此twitter fabric页面作为参考。

1 个答案:

答案 0 :(得分:0)

通过覆盖ListFragmentonCreateView中对您的自定义布局fragment_home.xml进行充气。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_home, container, false);
}

您的布局包含一个ListView,其中包含特殊的@android:id/list ID,用于标识ListView ListFragment的setListAdapter将使用的内容。

此外,TweetTimelineListAdapter只是ListAdapter。 如果您想找到自己的ListView并自行设置适配器,请使用普通Fragment(而不是ListFragment)。

mTimeline.setListAdapter(adapter)  // mTimeline is a ListView

文档包含ListFragment example