首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现progressDialog

实现progressDialog
EN

Stack Overflow用户
提问于 2014-09-02 09:20:04
回答 3查看 661关注 0票数 2

当调用我的类时,我想实现一个progessDialog。我知道如何为使用progressDialog的片段类实现AsyncTask。但是这里有一个不使用asyncTask的片段类。

这个片段所做的是显示一些新闻细节时,它被称为。我想在新闻加载时显示一个progressDialog,并在新闻加载并准备好到display.How时停止progressDialog,我可以这样做吗?我是新手,请帮帮我

我的碎片类

代码语言:javascript
复制
package com.fortuna.cinemalk;

public class NewsDetailFragment extends Fragment {

    private ViewPager view1;
    private ViewPageAdapter adapter;
    private Activity activity;
    private CommonVariable commonVariable;


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

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

        activity = this.getActivity();

        commonVariable = (CommonVariable) activity.getApplication();

        view1 = (ViewPager) view.findViewById(R.id.listviewpager);

        adapter = new ViewPageAdapter(commonVariable.getNewsDescription(),
                Element.NEWS_DETAIL.getType(), activity);

        view1.setAdapter(adapter);



        return view;
    }

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-02 09:54:36

你需要这样:

代码语言:javascript
复制
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="match_parent"
       android:layout_height="match_parent">

      <ProgressBar
         android:id="@+id/progressBar1"
         style="?android:attr/progressBarStyleLarge"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerHorizontal="true"
         android:layout_centerVertical="true"
         android:indeterminate="true" />

         </RelativeLayout>

加载数据后,只需隐藏这个进度栏,如下

代码语言:javascript
复制
      progressBarObj.setVisibility(false);
票数 1
EN

Stack Overflow用户

发布于 2014-09-02 09:42:18

对我来说最好的选择是创建一个自定义处理程序来修改proggress组件:

代码语言:javascript
复制
public final class ProgressBarComponentViewHandler extends Handler {

    private ProgressBar progressLayout;

    private Activity mActivity;

    public LoadingComponentViewHandler(Activity activity, ProgressBar progressLayout) {
        this.progressLayout = progressLayout;
        this.mActivity=activity
    }

    public void update(int status){
        Message m = new Message();
        Bundle bundle = new Bundle();
        bundle.putInt("status", status);
        m.setData(bundle);
        super.sendMessage(m);
    }

    public void handleMessage(Message msg) {
        Bundle b = msg.getData();
        Integer status = b.getInt("status", 0);
        progressLayout.setProgress(status);
    }
}

在你的片段里:

代码语言:javascript
复制
loadingComponentView = (ProgressBar) yourRootView.findViewById( R.id.progress_bar_component_view );

progressBarDialogHandler = new ProgressBarViewHandler(getActivity(), loadingComponentView);

最后,更新您的观点:

代码语言:javascript
复制
progressBarDialogHandler.update(80);//To set 80% of progressbar.
票数 1
EN

Stack Overflow用户

发布于 2014-09-02 09:53:21

您可以从您的ProgressDialog或服务中显示ProgressDialog,也可以像静态和调用AsyncTask或服务那样以片段形式初始化progressDialog,但是您需要检查progressDialog!=null

(因为当新闻被加载时,我需要取消进度)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25619947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档