Lütfen aşağıdaki örnek kodu kontrol edin. Tost mesajları gösterilir, ancak progressdialog asla gizlenmez. Niye ya?ProgressDialog.dismiss() çalışmıyor
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.Toast;
public class LoadExamActivity extends Activity implements Runnable{
ProgressDialog pd;
Handler Finished = new Handler(){
@Override
public void handleMessage(Message msg){
Toast.makeText(getApplicationContext(), "DONE!", Toast.LENGTH_SHORT).show();
pd.dismiss();
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.exam);
Toast.makeText(this, "START!", Toast.LENGTH_SHORT).show();
pd = new ProgressDialog(this);
pd.show(this, "Waiting...", "Please wait five seconds...");
Thread th = new Thread(this);
th.start();
}
public void run() {
//To change body of implemented methods use File | Settings | File Templates.
for (int i = 0; i < 5; i++)
{
try
{
Thread.sleep(1000);
}catch(Exception e){}
}
Finished.sendEmptyMessage(0);
}
}
beş saniye "TAMAM" mesajı gösterilir ama progressdialog görevden ve sağ thr pd.show() Ben progressdialog görevden alışkanlık aşağıda pd.dismiss() koymak bile ya ben don değil sonra Bunun neden olduğunu bilmiyorum ve beni delirtiyor!
ÇALIŞIYOR! Uyarı konusunda haklıydın ve farketmedim. Fakat IDE'nin neden .show() yönteminin bir şey (void) döndürmediğini ve her şeyden sonra bir ProgressDialog örneğini döndürdüğünü neden anlayamıyorum? – Davidoff
Evet, bu işe yarıyor. show() ProgressDialog örneğini döndürür, ancak yeni anahtar kelimeyi kullanarak da aynı örneği alırız, umarım. Yukarıdaki şekilde, işten çıkarma kodu çalıştı, diğer yandan, yeni anahtar kelimeyi kullanarak kod çalışmadı. – Khushboo
Harika bir açıklama için teşekkür ederiz. – suku