KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
this is my scenario: I've got a login screen that opens another activity. In the Activity I simply have: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_details); } The layout is kind of heavy, cause it is made of some fragments, and takes about 1.5 seconds to load. Now, how can I display a ProgressDialog while setContentView finishes inflating the layout? I've tried with AsyncTask by putting the setContentView in the doInBackground , but of course that cannot be done, as the UI can be updated from the UI thread only. So I need to call setContentView in the UI thread, but where do I have to show/dismiss the ProgressDialog ? I appreciate your help. Fra. EDIT: I followed @JohnBoker's previous suggestion, this is the code I have now: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_empty_layout); new ContentSetterTask().execute(""); } private class ContentSetterTask extends AsyncTask<String, Void, Void> { public ProgressDialog prgDlg; @Override protected void onPreExecute() { android.os.Debug.waitForDebugger(); prgDlg = ProgressDialog.show(MultiPaneActivity.this, "", "Loading...", true); } @Override protected Void doInBackground(String... args) { android.os.Debug.waitForDebugger(); ViewGroup rootView = (ViewGroup)findViewById(R.id.emptyLayout); LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); View inflated = inflater.inflate(R.layout.activity_details, rootView); return null; } @Override protected void onPostExecute(Void arg) { android.os.Debug.waitForDebugger(); if (prgDlg.isShowing()) prgDlg.dismiss(); } } } <
Tags (comma-separated)
Save Edits
Cancel