私は持っていbutton
ます。onclick
イベントでは、 を実行してから、progressDialog
がロードされている間progressDialog
に を実行しAsyncTask
ます。
私のコード:
メソッド OnCreate
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
principal_layout = (RelativeLayout) findViewById(R.id.principal_layout);
text_search = (TextView) findViewById(R.id.textView1);
search_button = (Button) findViewById(R.id.button1);
input_song = (EditText) findViewById(R.id.editText1);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
search_button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
runOnUiThread(new Runnable() {
public void run() {
pd = ProgressDialog.show(MainActivity.this, "Working..", "Loading, please wait..", true, false);
}
});
handler.sendEmptyMessage(1);
}});
}
メソッドハンドラー (var Handler)
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if(msg.what == 1){
try {
songs = new AsyncTasks().new GetSong(MainActivity.this).execute("mySong","1").get();
} catch (InterruptedException e) {
e.printStackTrace();
}
catch (ExecutionException e) {
e.printStackTrace();
}
sendEmptyMessage(0);
}
else if(msg.what == 0){
Toast.makeText(MainActivity.this, "Finished process", Toast.LENGTH_SHORT).show();
if(pd != null && pd.isShowing()){
pd.dismiss();
}
}
}
};
コードはエラーを生成しませんが、次は次のとおりです。
ボタンをクリックすると、プログラムは次の行を実行します。
曲 = new AsyncTasks().new GetSong(MainActivity.this).execute("mySong","1").get();
、そして実行が終了すると、最近progressDialogが表示されます。ボタンをクリックする正確な瞬間が表示されることを願っています(遅滞なく)。