Android Fragment实现

时间:2011-12-03 14:23:00

标签: android android-fragments

我正在尝试使用https://github.com/JakeWharton/Android-ViewPagerIndicator插件在我的项目中实现Fragments。

我的片段

public final class NearByFragment extends Fragment {
    private static String TAG = "bMobile";

    public static NearByFragment newInstance(String content) {
        NearByFragment fragment = new NearByFragment();
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.d(TAG, "onCreate");
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        Log.d(TAG, "onCreateView");
        return inflater.inflate(R.layout.fragment_search_nearby, null);
    }
}

现在我想执行一些代码,比如启动一个新线程并从服务器下载一个JSON,然后从我下载的内容中分配一个列表视图。在片段中,我们在onCreateView中分配视图。那我应该在哪里写

listview = (ListView) findViewById(R.id.list_items);

((TextView) findViewById(R.id.title_text))
                .setText(R.string.description_blocked);

和其他代码生成片段视图?

2 个答案:

答案 0 :(得分:3)

您可以在视图中搜索刚刚膨胀的内容:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        Log.d(TAG, "onCreateView");
        View v = inflater.inflate(R.layout.fragment_search_nearby, null);
        listview = (ListView)v.findViewById(R.id.list_items);
        ((TextView)v.findViewById(R.id.title_text))
                        .setText(R.string.description_blocked);
        return v;
    }

您还可以在代码中的其他位置使用Fragment.getView()功能,并调用该视图的findViewById()成员。

答案 1 :(得分:1)

如果您想要访问布局元素,可以使用片段中的getActivity().findByView()。或者,您可以将findByView()调用放在主Activity中。