Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 片段布局中的ProgressBar_Android_Android Fragments_Android Asynctask_Android Progressbar - Fatal编程技术网

Android 片段布局中的ProgressBar

Android 片段布局中的ProgressBar,android,android-fragments,android-asynctask,android-progressbar,Android,Android Fragments,Android Asynctask,Android Progressbar,我无法访问在fragment的Asynctask中的onCreateView中创建的进度条。其错误原因是onPreExecute中的progressbar正在提供NullPointerException。 在调用asynctask之前,我创建了progressBar。那么问题出在哪里呢 public class HomeFragment extends Fragment { ProgressBar progressBar; @Override public V

我无法访问在fragment的Asynctask中的onCreateView中创建的进度条。其错误原因是onPreExecute中的progressbar正在提供NullPointerException。 在调用asynctask之前,我创建了progressBar。那么问题出在哪里呢

    public class HomeFragment extends Fragment {

    ProgressBar progressBar;

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

        View view = inflater.inflate(R.layout.home_fragment, container, false);

        progressBar = (ProgressBar) view.findViewById(R.id.progressbar);

        new getAnnouncements().execute();

        return view;
    }

    public static HomeFragment newInstance() {
        HomeFragment fragment = new HomeFragment();

        return fragment;
    }

    private class getAnnouncements extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressBar.setVisibility(View.VISIBLE);

        }

        @Override
        protected Void doInBackground(Void... params) {
            return null;
        }

        @Override
        protected void onPostExecute(Void args) {
            progressBar.setVisibility(View.GONE);

        }

    }
}
公共类HomeFragment扩展了片段{
ProgressBar ProgressBar;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.home\u碎片,容器,假);
progressBar=(progressBar)view.findViewById(R.id.progressBar);
新建getAnnouncements().execute();
返回视图;
}
公共静态HomeFragment newInstance(){
HomeFragment=新的HomeFragment();
返回片段;
}
私有类GetTask{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
progressBar.setVisibility(View.VISIBLE);
}
@凌驾
受保护的Void doInBackground(Void…参数){
返回null;
}
@凌驾
受保护的void onPostExecute(void args){
progressBar.setVisibility(View.GONE);
}
}
}
home_fragment.xml

 <ProgressBar
                    android:id="@+id/progressBar"
                    style="?android:attr/progressBarStyleLarge"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_marginTop="24dp"
                    android:visibility="gone" />


一旦签入home\u fragment.xml布局,id为“progressbar”的进度条是否存在?愚蠢的我,它是id progressbar而不是progressbar。谢谢钱德拉坎特。
progressBar = (ProgressBar) view.findViewById(R.id.progressBar);