首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ProgressDialog未在TabActivity中显示

ProgressDialog未在TabActivity中显示
EN

Stack Overflow用户
提问于 2016-11-01 07:28:28
回答 1查看 86关注 0票数 1

我有一个带有一些选项卡的TabActivity,用于用户输入。当用户完成输入并按下保存按钮时,我将继续进行数据保存。这是通过在每个活动中调用方法startDataTravershal()来完成的。我想在按下按钮时显示一个progressDialog,并在数据保存完成后将其关闭。然而,无论我做什么,progressDialog都没有显示出来。

我的代码:

代码语言:javascript
复制
    public class HandHoldingTabUI extends TabActivity {

    TabHost TabHostWindow;
    TabSpec TabEntry;
    TabSpec TabRectification;
    TabSpec TabG26;
    TabSpec TabU26;
    TabSpec TabG27;
    TabSpec TabBudget;
    TabSpec TabBDC;
    TabSpec TabTradeL;
    TabSpec TabIncomeC;
    TabSpec TabPCC;
    TabSpec TabTAR;
    TabSpec TabPNTA;
    TabSpec TabPaperless;
    TabSpec TabOthers;

    Button btnSaveData = null;

    ProgressDialog progressDialog = null;

    public static HandHoldingTabUI context;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.handholding_tab_ui);
        context=this;
        UserDataHelper helper = new UserDataHelper(HandHoldingTabUI.this);
        helper.deleteData("delete from "+UserDataHelper.tableMentorSurveyData);
        helper.close();
        init();
    }

    private void init() {
        btnSaveData = (Button) findViewById(R.id.btnSaveData);
        btnSaveData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                progressDialog = ProgressDialog.show(HandHoldingTabUI.this, "",
                        "Loading. Please wait...");
                HandHoldingTabUI.this.runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        saveData();
                        progressDialog.dismiss();
                    }
                });

            }
        });
        TabHostWindow = (TabHost)findViewById(android.R.id.tabhost);

        createTab(TabEntry,"Entry","Entry", Entry.class);  //Entry
        createTab(TabRectification,"Rectification","Rectification", Rectification.class);  // Rectification
        createTab(TabG26,"Generation of form 26","Generation of form 26", G26.class);  //Generation of form 26
        createTab(TabU26,"Uploading of form 26","Uploading of form 26", U26.class);  //Uploading of form 26
        createTab(TabG27,"Generation of form 27","Generation of form 27", G27.class);  //Generation of form 27
        createTab(TabBudget,"Budget (Form 36)","Budget (Form 36)", Budget.class);  //Budget (Form 36)
        createTab(TabBDC,"Birth and Death Certificate","Birth and Death Certificate", BDC.class);  //Birth and Death Certificate
        createTab(TabTradeL,"Trade license","Trade license", TradeL.class);  //Trade license
        createTab(TabIncomeC,"Income Certificate","Income Certificate", IncomeC.class);  //Income Certificate
        createTab(TabPCC,"Provisional Caste Certificate","Provisional Caste Certificate", PCC.class);  //Provisional Caste Certificate
        createTab(TabTAR,"Tax Assessment Register","Tax Assessment Register", TAR.class);  //Tax Assessment Register
        createTab(TabPNTA,"Preparation of Non-tax Assessment","Preparation of Non-tax Assessment", PNTA.class);  //Preparation of Non-tax Assessment
        createTab(TabPaperless,"Paperless","Paperless", PaperLess.class);  //Paperless
        createTab(TabOthers,"Others","Others", Others.class);  //Others

        setUpCommonData();

    }

    private void setUpCommonData() {
        SharedPreferences prefs = getSharedPreferences("Preferences", Context.MODE_PRIVATE);
        HandholdingCommonData.gpCode = getIntent().getStringExtra("gpCode");
        HandholdingCommonData.userId = prefs.getString("userCode",null);
        HandholdingCommonData.userGroup = prefs.getString("userGroup",null);
        HandholdingCommonData.userChekInTime = prefs.getString("checkInTime",null);
        HandholdingCommonData.userFileId = HandholdingCommonData.userId + "_"+HandholdingCommonData.userChekInTime;
    }

    private void createTab(TabSpec TabMenu,String TabName,String TabIndicator,Class TabActivity){

        TabMenu = TabHostWindow.newTabSpec(TabName);
        TabMenu.setIndicator(TabIndicator);
        TabMenu.setContent(new Intent(this,TabActivity));
        TabHostWindow.addTab(TabMenu);
    }

    private void saveData() {

        UserDataHelper helper = new UserDataHelper(HandHoldingTabUI.this);
        helper.deleteData("delete from "+UserDataHelper.tableMentorSurveyData);
        helper.close();

        for(int i = 0; i<getTabHost().getTabWidget().getTabCount(); i++) {
            getTabHost().setCurrentTab(i);
            Activity myActivity = this.getCurrentActivity();
            if(myActivity instanceof Entry) {
                Entry obj = (Entry) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof BDC) {
                BDC obj = (BDC) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof Budget) {
                Budget obj = (Budget) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof G26) {
                G26 obj = (G26) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof G27) {
                G27 obj = (G27) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof IncomeC) {
                IncomeC obj = (IncomeC) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof Others) {
                Others obj = (Others) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof PaperLess) {
                PaperLess obj = (PaperLess) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof PCC) {
                PCC obj = (PCC) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof PNTA) {
                PNTA obj = (PNTA) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof Rectification) {
                Rectification obj = (Rectification) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof TAR) {
                TAR obj = (TAR) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof TradeL) {
                TradeL obj = (TradeL) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
            if(myActivity instanceof U26) {
                U26 obj = (U26) myActivity;
                obj.category = "Handholding Support";
                obj.startDataTravershal();
            }
        }
        proceedToShowDraft();
    }

    private void proceedToShowDraft() {
        Intent intent = new Intent();
        intent.setClass(HandHoldingTabUI.this,DraftUi.class);
        intent.putExtra("gpCode",HandholdingCommonData.gpCode);
        intent.putExtra("userGroup",HandholdingCommonData.userGroup);
        intent.putExtra("userId",HandholdingCommonData.userId);
        intent.putExtra("userFileId",HandholdingCommonData.userFileId);
        startActivity(intent);
        HandHoldingTabUI.this.finish();
    }
}

我尝试过这些解决办法,但它们没有帮助:

Progress Dialog in Tab Layout in android

Show a progress dialog in android tab layout

android how to put progressdialog in TabActivity

我非常感谢在这个问题上提供任何帮助。

谢谢,致以最诚挚的问候。

编辑:根据评论,我试图这样做:-

代码语言:javascript
复制
AsyncTask task = new AsyncTask() {
                @Override
                protected Object doInBackground(Object[] params) {
                    progressDialog = ProgressDialog.show(HandHoldingTabUI.this, "",
                            "Loading. Please wait...");
                    saveData();
                    return null;
                }

                @Override
                protected void onPostExecute(Object o) {
                    progressDialog.dismiss();
                    proceedToShowDraft();
                }
            };

这是在按钮的onClick()上写的。但现在,当我点击按钮时,什么都不会发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-01 09:18:44

请尝试更改您的onClick()方法如下:

代码语言:javascript
复制
@Override
public void onClick(View v) {
    progressDialog = ProgressDialog.show(HandHoldingTabUI.this, "",
            "Loading. Please wait...");
    new Thread(new Runnable() {

        @Override
        public void run() {
            saveData_1();
            HandHoldingTabUI.this.runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    saveData_2();
                    progressDialog.dismiss();
                }
            });
        }
    }).start();
}

...

private void saveData_1() {
    UserDataHelper helper = new UserDataHelper(HandHoldingTabUI.this);
    helper.deleteData("delete from "+UserDataHelper.tableMentorSurveyData);
    helper.close();
}

private void saveData_2() {
    for(int i = 0; i<getTabHost().getTabWidget().getTabCount(); i++) {
        getTabHost().setCurrentTab(i);
        Activity myActivity = this.getCurrentActivity();
        if(myActivity instanceof Entry) {
            Entry obj = (Entry) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof BDC) {
            BDC obj = (BDC) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof Budget) {
            Budget obj = (Budget) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof G26) {
            G26 obj = (G26) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof G27) {
            G27 obj = (G27) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof IncomeC) {
            IncomeC obj = (IncomeC) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof Others) {
            Others obj = (Others) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof PaperLess) {
            PaperLess obj = (PaperLess) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof PCC) {
            PCC obj = (PCC) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof PNTA) {
            PNTA obj = (PNTA) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof Rectification) {
            Rectification obj = (Rectification) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof TAR) {
            TAR obj = (TAR) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof TradeL) {
            TradeL obj = (TradeL) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
        if(myActivity instanceof U26) {
            U26 obj = (U26) myActivity;
            obj.category = "Handholding Support";
            obj.startDataTravershal();
        }
    }
    proceedToShowDraft();
}

请注意,在执行后台线程时,您应该考虑活动完成时应该发生的事情。

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

https://stackoverflow.com/questions/40355765

复制
相关文章

相似问题

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