2016-06-12 11 views
0

Androidスタジオを使用してPC Javaコードをアンドロイドに移動します。 Javaコードはいくつかの数値計算ルーチンを実行し、基本的なコンピューターでは問題の解決策を返すのに数秒かかる場合があります。 Javaコードは非常にきれいです。Android:計算が実行されているときのポップアップアラート

ボタンをクリックすると、ルーチンが開始します。私は計算が実行されている間、エレガントな "アラート"メンサジェンを表示する方法を知りたいと思います。ポップアップで一種の「しばらくお待ちください」。

私の基本的なコード:ところで

static double h,w,l,t,Te;  
static int ambiente; 
private EditText numeroin; 
//private TextView numeroout; 

public void cliqueBotao(View view){ 

Intent intent = getIntent(); 
ambiente = intent.getIntExtra("ambiente_selec", 0); 

numeroin=(EditText)findViewById(R.id.in_h); 
h= Double.parseDouble(numeroin.getText().toString()); 

numeroin=(EditText)findViewById(R.id.in_w); 
w= Double.parseDouble(numeroin.getText().toString()); 

numeroin=(EditText)findViewById(R.id.in_l); 
l= Double.parseDouble(numeroin.getText().toString()); 

numeroin=(EditText)findViewById(R.id.in_t); 
t= Double.parseDouble(numeroin.getText().toString()); 

numeroin=(EditText)findViewById(R.id.in_T); 
Te= Double.parseDouble(numeroin.getText().toString()); 

(HERE STARTS THE NUMERICAL CALCULATIONS CODE) 

/**AlertDialog msg; 
msg=new AlertDialog.Builder(this).create(); 
msg.setMessage("Calculando"); 
msg.show();*/ 

} 

は、ボタンのXMLコードにクリック時のオプションは、 "cliqueBotao" にsetedされます。

答えて

0

ワーカースレッドで計算する必要があります。AsyncTaskをご覧ください。 onProgressUpdateおよびonPostExecuteコールバックを使用すると、ポップアップダイアログのライフサイクルを制御し、現在の計算の進行状況を表示することもできます。

+0

私はAsyncTaskクラスを知りませんでした。私は "黒いスクリーンと白い文字"のプログラマーです。私はあなたの提案を勉強します。 Tks! –

+0

複雑な計算のような大きくて遅い作業は、メインのUIスレッドの外側で行う必要があります。これはAsyncTaskが手に入る場所です。このAPIの提案で必要なものを達成できる場合は、私の答えを受け入れてください!よろしく。 –

+0

ニース!しかし、実際には、AsyncTaskクラスで新しいアクティビティを開始する方法を発見する戦いでした。最良の答えはここにある:http://stackoverflow.com/questions/12332930/android-asynctask-start-new-activity-in-onpostexecute –

0

Rogérioが示唆しているように、AsyncTaskは私の問題に対する最良の解決策でした。一方、AsyncTaskを使用して新しいアクティビティを開始する方法を発見しなければなりませんでした。それは私のために簡単ではありませんでしたが、便利なソリューションはここにある:Android AsyncTask: start new Activity in onPostExecute()

関連する問題