ile düzen yükleme sırasında ProgressDialog göster Bu benim senaryo: Başka bir etkinliği açan bir giriş ekranım var. Faaliyet ben sadece var:SetContentView
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
}
düzen bazı parçaların yapıldığı nedeni, tür ağır ve yüklemek için yaklaşık 1,5 saniye sürer. Şimdi, ProgressDialog
görünümünü nasıl düzenleyebilirim? setContentView
düzeni şişirirken bitiriyor? ile doInBackground
içine koyarak, ancak UI yalnızca UI iş parçacığı üzerinden güncelleştirilemez, bu yapılamadı ile denedim. Dolayısıyla, UI dizisinde setContentView
numaralı telefonu aramam gerekiyor, ancak ProgressDialog
'u nerede göstermek/kapatmak zorundayım?
Yardımlarınız için minnettarım.
Fra.
DÜZENLEME:
@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();
}
}
}
View inflated = inflater.inflate(R.layout.activity_details, rootView);
bana hata veriyor satır:
06-27 16:47:24.010:
ERROR/AndroidRuntime(8830): Caused by:android.view.ViewRoot$CalledFromWrongThreadException:
Only the original thread that created a view hierarchy can touch its views.
DoInBackground yönteminde el ile şişirmeyi ne dersiniz? –
Yerleşim dosyanızı görmek ilginç, bence en iyisini denemek ve optimize etmek. Emulator veya telefon/tablette 1,5 saniye mi var? – Marty
Merhaba, aslında eeePad Transformer'da yaklaşık 1,5 saniyedir. El ile nasıl şişirebilirim? Düzen, burada gönderilmek için oldukça uzun, ancak yaklaşık 10-12 doğrusal düzen ve bir gerçek parça (şimdilik). – frapontillo