カテゴリー:
Android Studio ではじめる Android プログラミング入門 第3版 Android Studio 2対応
閲覧数:351 配信日:2018-05-07 12:17
デモ内容
・java.util.Timerを利用して毎秒10ずつProgressDialogの値を増加
・最大値(100)になったら、ダイアログを終了
コード
▼MainActivity.java
package work.w4c.android0.androidtoast20180420;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
static final String MENU_ITEM = "menu item";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
menu.add(MENU_ITEM);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (MENU_ITEM.equals(item.getTitle())){
//Toast toast = Toast.makeText(this,"Hello, Toast!!",
// Toast.LENGTH_LONG);
//toast.show();
//AlertDialog.Builder builder = new AlertDialog.Builder(this);
//builder.setTitle("Message");
//builder.setMessage("これがアラートダイアログの表示です。");
//builder.show();
/*
final Activity activity = this;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Message");
builder.setMessage("これがアラートダイアログの表示です。");
builder.setPositiveButton("わかった",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast toast = Toast.makeText(activity , "ダイアログを閉じました。",
Toast.LENGTH_LONG);
toast.show();
}
});
builder.setNegativeButton("キャンセル",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast toast = Toast.makeText(activity , "キャンセルしました。",
Toast.LENGTH_LONG);
toast.show();
}
});
builder.show();
*/
/*
final Activity activity = this;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("選択してください");
final String[] items = {"ONE", "TWO", "THREE"};
builder.setItems((CharSequence[])items,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast toast = Toast.makeText(activity, items[i] + "を選択しました。",
Toast.LENGTH_LONG);
toast.show();
}
});
builder.show();
*/
final Timer timer = new Timer();
final ProgressDialog dlog = new ProgressDialog(this);
dlog.setTitle("経過表示");
dlog.setMax(100);
dlog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dlog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
timer.cancel();
}
});
dlog.show();
TimerTask task = new TimerTask() {
@Override
public void run() {
dlog.incrementProgressBy(10);
if (dlog.getProgress() >= dlog.getMax()){
dlog.dismiss();
timer.cancel();
}
}
};
timer.schedule(task,1000,1000);
}
return super.onOptionsItemSelected(item);
}
}