0

Web からデータをロードする Fragment がある
ので、RelativeLayout を作成して、データがまだロード中であることをユーザーに表示し
たい 終了したら、RelativeLayout を非表示にしたい

しかし、ここに問題があります。
フラグメントの Xml に、読み込みバーが表示された状態で RelativeLayout を配置しました

1)onCreate() {この中に Asynctask.execute() があります
2)onCreateView() {そして、ここで Inflater と View を介してローディングバーを使用して RelativeLayout を管理できます}
3)Asyntask.onPostExecute() {そしてここで非表示にしたい私の相対レイアウト..}

しかし、Asynctask では相対レイアウトにアクセスする方法がありません。もちろん、NullPointerException が原因でアプリがクラッシュしようとすると [明らか]

どうすればこの問題を管理できますか?

4

3 に答える 3

1

次のようなことをしたようです。

private RelativeLayout mRelativeLayout;

mRelativeLayout = findViewById(R.Layout.relativeLayoutId);

そして、後で次のようにクラスで使用します

mRelativeLayout.doTheMagic();
于 2013-07-26T18:49:03.630 に答える
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 に答える