我已經實現了progressDialog
,但是當我的活動開始並且它工作或從互聯網獲取信息時,它不會旋轉。我已經在Stackoverflow和其他地方嘗試了很多解決方案,但它仍然不旋轉 - progressDialog
彈出ok,但輪子不旋轉。許多建議都一致使用AsyncTask
,開始一個新的線程/ runnable而不是UI線程,但仍然沒有運氣。我會很感激任何解決方案。我如何在Progressdialog旋轉中製作微調框?
與#2職位的幫助,我想這在我的AsyncTask
的OnPreExecute
......但現在progressDialog
甚至不露面!:
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(NewContact.this);
new Thread(new Runnable() {
@Override
public void run() {
// Showing progress dialog
pDialog.setMessage("Loading...");
pDialog.show();
}
});
}
的代碼我一直在使用,這表明在progressDialog
但它不旋轉,方法是:
protected void onPreExecute() {
pDialog = new ProgressDialog(NewContact.this);
// Showing progress dialog before making http request
pDialog.setMessage("Loading...");
pDialog.show();
super.onPreExecute();
}
下面是該活動的完整代碼結構:
public class NewContact extends AppCompatActivity implements android.widget.CompoundButton.OnCheckedChangeListener {
private ProgressDialog pDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_contact);
StringRequest stringRequest = new StringRequest(Request.Method.POST, NewContact_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
return params;
}
};
}
// Load data in background
class LoadContact extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(NewContact.this);
new Thread(new Runnable() {
@Override
public void run() {
// Showing progress dialog
pDialog.setMessage("Loading...");
pDialog.show();
}
});
}
@Override
protected Void doInBackground(Void... voids) {
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
hidePDialog();
}
}
@Override
protected void onResume() {
super.onResume();
LoadContact loadContact = new LoadContact();
loadContact.execute();
}
public void hidePDialog() {
if (pDialog != null) {
pDialog.dismiss();
pDialog = null;
}
}
}
在我res/values/styles.xml
我:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
我不記得曾經進入了styles.xml
和設置這些值。我的應用程序工作正常(除了微調),但=Theme...
部分styles.xml
的都是紅色的,當我把鼠標放在他們,我得到的消息:
Cannot resolve symbol 'Theme.AppCompat'
Cannot resolve symbol 'Theme.AppCompat.Light'
Cannot resolve symbol 'Theme.AppCompat.Light.DarkActionBar'
難道這是與我的問題呢?
您之前顯示進度對話框的方法是正確的。我認爲進度對話框沒有旋轉,因爲主UI線程上的StringRequest完成了一些繁重的工作,而且我無法理解這個StringRequest做了什麼? – Passiondroid
分享你的主題爲該活動 –
Downvoter:請評論原因。想到這個問題,並嘗試解決,不知道如何,這就是爲什麼我張貼。此刻離開機器,馬上發佈主題,謝謝。所有字符串請求都會從服務器獲取一些小文本。 – CHarris