スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Android 日付ダイアログと時刻ダイアログの表示

日付ダイアログと時刻ダイアログ
日付入力、時刻入力が可能なダイアログです。










○main.xml
日付、時刻を表示するTextViewとダイアログを表示するButtonを配置します

<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:id="@+id/datelabel" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button android:id="@+id/datebtn" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="日付ダイアログ" />
<TextView android:id="@+id/timelabel" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button android:id="@+id/timebtn" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:text="時刻ダイアログ" />
</LinearLayout>


○Activity

package dialog.test;

import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

public class DialogTest extends Activity {

Activity activity = null;
TextView dateLabel = null;
TextView timeLabel = null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
activity = this;
dateLabel = (TextView) findViewById(R.id.datelabel);
timeLabel = (TextView) findViewById(R.id.timelabel);

findViewById(R.id.datebtn).setOnClickListener(dateClick);①
findViewById(R.id.timebtn).setOnClickListener(timeClick);
}

/**
* 日付ダイアログ表示
*/
OnClickListener dateClick = new OnClickListener() {@Override
public void onClick(View v) {
String now = now();
int y = Integer.parseInt(now.substring(0, 4));
int m = Integer.parseInt(now.substring(4, 6));
int d = Integer.parseInt(now.substring(6, 8));
if (!dateLabel.getText().toString().equals("")) {
String[] date = dateLabel.getText().toString().split("/");
y = Integer.parseInt(date[0]);
m = Integer.parseInt(date[1]);
d = Integer.parseInt(date[2]);
}

// 日付ダイアログ
DatePickerDialog dateDialog = new DatePickerDialog(activity, ②
new DatePickerDialog.OnDateSetListener() {@Override
public void onDateSet(DatePicker view, int year, ③
int monthOfYear, int dayOfMonth) {
dateLabel.setText(String.format("%04d/%02d/%02d",
year, monthOfYear + 1, dayOfMonth));
}
}, y, m - 1, d);
dateDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "cancel", ④
new DialogInterface.OnClickListener() {@Override
public void onClick(DialogInterface dialog, int which) {
dateLabel.setText("");
}
});
dateDialog.show();
}
};
/**
*  時刻ダイアログ表示
*/
OnClickListener timeClick = new OnClickListener() {@Override
public void onClick(View v) {
String now = now();
int h = Integer.parseInt(now.substring(8, 10));
int m = Integer.parseInt(now.substring(10, 12));
if (!timeLabel.getText().toString().equals("")) {
String[] time = timeLabel.getText().toString().split(":");
h = Integer.parseInt(time[0]);
m = Integer.parseInt(time[1]);
}

// 時刻ダイアログ
TimePickerDialog timeDialog = new TimePickerDialog(activity, ⑥
new OnTimeSetListener() {@Override
public void onTimeSet(TimePicker view, int hourOfDay, ⑦
int minute) {
timeLabel.setText(String.format("%02d:%02d",
hourOfDay, minute));
}
}, h, m, true);
timeDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "cancel", ⑧
new DialogInterface.OnClickListener() {@Override
public void onClick(DialogInterface dialog, int which) {
timeLabel.setText("");
}
});
timeDialog.show();
}
};

public static String now() {
Date date1 = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return sdf.format(date1);
}
}

①日付、時刻入力のダイアログを表示するClickイベントを設定します。
②日付のダイアログはDataPickerDialogを使用します。第一引数にActivity、第二引数に
  設定ボタンクリック時のイベント、第三~五引数には表示する年月日を指定します。
③onDateSetメソッドで設定値を受け取ります
④ボタンを追加する場合は、setButtonメソッドを使用します。
⑥時刻を表示するダイアログは、TimePickerDialogを使用します。
  引数はActivity、設定クリック時のイベントリスナー、表示する時刻です。
⑦設定クリック時に呼ばれるメソッドです。
⑧setButtonでボタンの追加が可能です。
スポンサーサイト

テーマ : android
ジャンル : コンピュータ

コメントの投稿

非公開コメント

おすすめアプリ
カテゴリ
最新記事
リンク
アクセスカウンター
アクセス解析
imobile
i-mobile
i-mobile
i-mobile
i-mobile
i-mobile
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Amazon
Androidお勧め参考書
EC studio
商品
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。