AlertDialogを使ってみる.
物凄い間が空いた再開です.
AndroidでAlertDialogを使って,Googleのトップページを表示します.
タブ幅を3にすると,枠の端で折り返されてしまうことが多いのだろうか.
プログラム用に上手く表示できるようにしたい.
SyntaxHighLighterが上手く動かない...
- activity_mock_alert_dialog.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MockAlertDialogActivity" > <Button android:id="@+id/dialog_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Dialog" /> </RelativeLayout>
- MockAlertDialogActivity.java
package com.example.mockalertdialog; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; /** * http://google.co.jpを表示するアクティビティ ボタンを押すとダイアログ表示->OKとすると,暗黙的Intentでブラウザに遷移する. * */ public class MockAlertDialogActivity extends Activity { private Button dialogButton = null; private AlertDialog.Builder alertBuilder = null; private String URLString = null; private Intent intent = null; // State @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mock_alert_dialog); } @Override protected void onResume() { super.onResume(); // URL URLString = "http://google.co.jp"; // AlertDialogの生成 alertBuilder = new AlertDialog.Builder(MockAlertDialogActivity.this); dialogButton = (Button) findViewById(R.id.dialog_button); // ボタンのリスナーを無名クラスで生成 dialogButton.setOnClickListener(new OnClickListener() { // クリック時のメソッド @Override public void onClick(View v) { // [Title]はタイトル部, [Message]は本文に該当する alertBuilder.setTitle("Warning!"); alertBuilder.setMessage(URLString); // Positive, Neutral, NegativeをAlertDialogでは選択可で,使用方法は自由. // Positiveの選択をした場合 alertBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 暗黙的インテントの生成.URLの文字列をパースする. // Intentを0以上とするとActivity#onActivityResult()に戻って,アプリケーション/Activity間で結果を受け取る事ができる. intent = new Intent(Intent.ACTION_VIEW, Uri .parse(URLString)); startActivityForResult(intent, -1); } }); // Neutralの選択をした場合 alertBuilder.setNeutralButton("Neutral", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "Neutral", Toast.LENGTH_SHORT).show(); } }); // Negativeの選択をした場合 alertBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); // AlertDialogの表示 alertBuilder.show(); } }); } @Override protected void onPause() { super.onPause(); } // Menu @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_mock_alert_dialog, menu); return true; } }