アプリの終了
アプリの終了には「finish」を使います。
package test.example.com.test27;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
//クリックイベント用に追加
import android.view.View.OnClickListener;
public class MainActivity extends AppCompatActivity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
//座標の初期設定
int x=0;
int y=0;
int width=0;
int height=0;
RelativeLayout layout = new RelativeLayout(this);
setContentView(layout);
x=100;
y=50;
width=200;
height=80;
Button btn1=new Button(this);
//配置を設定
RelativeLayout.LayoutParams obj1 = getLayoutObject(width, height);
obj1.leftMargin=x;
obj1.topMargin=y;
btn1.setText("アプリの終了");
btn1.setOnClickListener(this);
layout.addView(btn1, obj1);
}
@Override
//ボタンがクリックされたら実行されます。
public void onClick(View view) {
/*
AlertDialog.Builder dialog =
new AlertDialog.Builder(this,AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);
*/
AlertDialog.Builder dialog =
new AlertDialog.Builder(
this,android.R.style.Theme_DeviceDefault_Light_Dialog
);
dialog.setTitle(R.string.confirm);//確認
dialog.setMessage(R.string.end_confirm);//アプリを終了します。\nよろしいですか?
dialog.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener()//はい
{
@Override
public void onClick(DialogInterface dialoginterface,int iNo)
{
//アプリを終了させる
finish();
}
}
);
//キャンセル
dialog.setNegativeButton(R.string.cancel, null);
//非推奨となった書き方
/*
dialog.setNegativeButton("", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialoginterface,int iNo)
{
//アプリを終了させる
dismissDialog(0);//この書き方は非推奨となった
}
});
*/
//ダイアログを表示
dialog.create().show();
}
//レイアウトを決定するオブジェクトを生成し渡します
private RelativeLayout.LayoutParams getLayoutObject(int width,int height)
{
return new RelativeLayout.LayoutParams(width, height);
}
}
|
ダイアログはFragmentを使用した実装にした方がいいようですが、
今回は、昔から使われていると思われる方法で実装しています。
メッセージで改行をするには「\n」を用いることで実装できます。
このサンプルではstrings.xmlで実装しています。
「AlertDialog.Builder」に使用する設定値も非推奨となっているものもあるので
新規のものを使用することをお勧めします。
(非推奨の例)
this,AlertDialog.THEME_DEVICE_DEFAULT_LIGHT
(推奨の例)
Theme_DeviceDefault_Light_Dialog
終了処理についても非推奨となったものとして「dismissDialog」があるようです。
終了処理には冒頭でも記述した通り「finish」を使用することで
アプリを終了できます。
今回のサンプルで使用しているstrings.xmlは次の通りです。
<resources>
<string name="app_name">test27</string>
<string name="confirm">確認</string>
<!-- \nで改行できます -->
<string name="end_confirm">アプリを終了します。\nよろしいですか?</string>
<string name="yes">はい</string>
<string name="cancel">キャンセル</string>
</resources>
実行結果
|
|