0

我有一个从网络加载数据的片段
所以我想制作一个 RelativeLayout 向用户显示数据仍在加载
完成后我想让我的 RelativeLayout 消失

但这就是问题所在。
在我的 Fragment Xml 中,我将我的 RelativeLayout 与我的加载栏可见。
所以我的片段经历了这一步:

1)onCreate() {在这里面我有 Asynctask.execute()
2)onCreateView() {在这里我可以通过 Inflater 和 View 使用加载条管理我的 RelativeLayout}
3)Asyntask.onPostExecute() {这里我想让它消失我的相对布局..}

但是在 Asynctask 中,无法访问我的 relativelayout,当然,如果我因为 NullPointerException 而尝试应用程序崩溃 [明显]

我该如何处理这个问题?

4

3 回答 3

1

他似乎做了以下事情:

private RelativeLayout mRelativeLayout;

mRelativeLayout = findViewById(R.Layout.relativeLayoutId);

稍后在课堂上使用它

mRelativeLayout.doTheMagic();
于 2013-07-26T18:49:03.630 回答
0

修改AsyncTask的构造函数以接受对视图的引用,然后您可以在onPreExecute()onPostExecute(Result)方法期间对其进行修改。你为什么不直接使用ProgressDialog呢?容易得多。

于 2013-07-26T18:57:32.497 回答
0

我就是这样解决的:

 public class HomeFragment extends Fragment {
     RelativeLayout mLoading_Bar;
     public void onCreate(Bundle savedInstanceState) {
            Asynctask.execute();
     }
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
            View cView = inflater.inflate(R.layout.fragment_home, container, false);
            mLoading_Bar = (RelativeLayout) cView.findViewById(R.id.fragment_home_loadingdata_layout);
            return cView;
     }

     class ASynctask extends AsyncTask<Void, Void, Void> {

              protected Void doInBackground(Void... args) {
                    //do something
               }

              protected void onPostExecute(Void string) {
                    mLoading_Bar.setVisibility(View.GONE);
              }
     }
}

这就是所有人

于 2013-07-29T07:12:50.343 回答