0

我是安卓新手。我有一些活动FragmentTabsActivity extends FragmentActivity,并且使用tabhost(我知道它已被弃用,但这只是为了更好地理解)实现了一些选项卡。当某个选项卡处于活动状态时,我想将某个列表项显示为内容。

这个列表是用一些类定义的TabFragment extends ListFragment。我现在有

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        mProgressbar = (ProgressBar) findViewById(R.id.progressBar);
....
}
....
private boolean isNetworkAvailable(){
    ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

问题是既不findViewById,也不getSystemService被识别。为什么会这样?

4

2 回答 2

1

1.您需要先从布局中充气视图,然后在该视图中找到进度条。

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // inflate the view for your fragment
        View view=inflater.inflate(R.layout.yourlayoutname,container,false)
        // find the progressbar in your inflated view.
        mProgressbar = (ProgressBar) view.findViewById(R.id.progressBar);
....
        return view;
}

2.使用getActivity()。

private boolean isNetworkAvailable(){
    ConnectivityManager manager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
于 2013-09-03T19:47:16.537 回答
1

将评论转换为答案

findViewById是一种Activity膨胀的方法,因此您可以在这里使用几种方法,但最简单的方法是更改

mProgressbar = (ProgressBar) findViewById(R.id.progressBar)

mProgressbar = (ProgressBar) getView().findViewById(R.id.progressBar)

通过viewActivity.

因为getSystemService()您需要使用对Activitythisfragment附加的引用才能使用此方法,因此请更改

getSystemService(Context.CONNECTIVITY_SERVICE);

getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
于 2013-09-03T19:50:18.903 回答