Android Activity içinde Progress Dialog oluşturmaya çalıştım. Bazı işlemler için kullanılması gerekir. Uygulamada threadi beklettim dialogun daha iyi görünmesi içn. Android EditTexte android:inputType=”number” şeklinde bir tanımlama yaptığımızda klavyeden sayi dışında başka bir şey yazamıyoruz. RE ile kontrol etme örneği: How to Integer Control In Java with Regular Expression
<EditText android:id="@+id/editText1_prog" android:text="" android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="number"></EditText>
DialogActivity.java
package com.progess.dialog;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class DialogActivity extends Activity{
private Button start;
private EditText editText_input;
private int number;
private ProgressDialog pDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start=(Button) findViewById(R.id.button1_progess_aialog_start);
editText_input=(EditText) findViewById(R.id.editText1_prog);
}
@Override
protected void onStart() {
super.onStart();
start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//ProgessDialog olusturuyorum
pDialog=ProgressDialog.show(DialogActivity.this, "Baslik", "Mesaj-Calculating", true);
pDialog.setCancelable(false);
number=Integer.valueOf(editText_input.getText().toString());
//Islem surene kadar ekranda gosterriyorum.
new Thread() {
public void run() {
try{
//Islem yapilip DDMS ye log atiyor.
long fact_result=factoryelHesapla(number);
Thread.currentThread().sleep(2000);
Log.d("Sonuc:", String.valueOf(fact_result));
} catch (Exception e) {
Log.e("tag", e.getMessage());
}
//Dismiss this dialog, removing it from the screen. This method can be invoked safely from any thread.
pDialog.dismiss();
}
}.start();//run() metodunu start ediyor.
}
});
}
//Bu ornekte basit olsun diye factoryel yazdim. Mesela wev serviceden databaseden cektiginiz verileri
//json ile parse edip ve sonucu json objesi olarak donderen islem birazcik uzun surdugunde kullanilir bu progress dialog
public long factoryelHesapla(long sayi)
{
if(sayi<=0){
return 1;
}else {
return sayi*factoryelHesapla(sayi-1);
}
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText android:id="@+id/editText1_prog" android:text="" android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="number"></EditText>
<Button android:text="Start" android:id="@+id/button1_progess_aialog_start" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>


Bu çok işime yaradı teşekkürler ethem.