【问题标题】:FragmentTabHost and async loading dataFragmentTabHost 和异步加载数据
【发布时间】:2013-06-16 08:22:57
【问题描述】:

我有带有 2 个标签的 FragmentTabHost。 每个片段(标签)都需要从互联网加载数据并显示出来。

如果我在 onCreate 加载数据并填充它,然后切换到另一个选项卡并返回我有空视图。

TextView emailView;

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

    View convertView = inflater.inflate(R.layout.contactdetails_pro, container, false);

    emailView = (TextView) convertView.findViewById(R.id.contactdetails_info_email);

    return convertView;
}


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String id = getArguments().getString("id");

    MyTask pdthread = new MyTask(this.getActivity(), id, new AsyncTaskCompleteListener() {
        @Override
        public void onComplete(Detail detail) {
            emailView.setText(detail.getEmail());
        }
    });
    pdthread.execute();
}

【问题讨论】:

  • 如果您不切换选项卡数据是否正确显示?

标签: android android-layout android-fragments


【解决方案1】:

我不熟悉FragmentTabHost,但你可以试试这个(注意:你可能需要让Detail 类实现Serializable):

Detail mDetail = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String id = getArguments().getString("id");

    if (savedInstanceState == null) {
        MyTask pdthread = new MyTask(this.getActivity(), id, new AsyncTaskCompleteListener() {
            @Override
            public void onComplete(Detail detail) {
                mDetail = detail;
                emailView.setText(mDetail.getEmail());
            }
        });
        pdthread.execute();
    } else {
        mDetail = (Detail)savedInstanceState.getSerializable("detail");
        if (mDetail ! = null) {
            emailView.setText(detail.getEmail());
        }
    }
}

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putSerializable("detail", mDetail);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 2011-06-24
    • 2021-01-03
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多