![]()
実行後、現在の時刻を表示します。 アプリがアクティブになった場合にも、その時の現在の時刻を表示しますMainActivity.java
package app.lightbox.winofsql.jp.whattime;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class MainActivity extends Activity {
// *************************************
// 自動作成( onCreate )
// *************************************
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("lightbox", "開始");
}
// *************************************
// CTRL + O から追加( onStart, onStop, onPause )
// *************************************
@Override
protected void onStart() {
super.onStart();
TimeZone tz = TimeZone.getTimeZone("Asia/Tokyo");
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH'時'mm'分'ss'秒'");
sdf.setTimeZone(tz);
String time = sdf.format(date);
Log.i("lightbox", time);
TextView tv = (TextView) this.findViewById(R.id.text);
tv.setText(time);
}
@Override
protected void onStop() {
super.onStop();
Log.i("lightbox", "画面が切り替わりました");
}
@Override
protected void onPause() {
super.onPause();
Log.i("lightbox", "画面が切り替わろうとしています");
}
// *************************************
// 自動作成( onCreateOptionsMenu )
// *************************************
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
// *************************************
// 自動作成( onOptionsItemSelected )
// *************************************
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
Log.i("lightbox", "メニュー");
// 第二画面へ移動
Intent intent = new Intent(MainActivity.this, NextPage.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
}
TimeZone エミュレータで、TimeZone.getDefault() は正しい時間がとれませんでした。確実に、『Asia/Tokyo』を指定するのが良いと思います。 onStart onCreate では、アプリの開始時にしか実行されないので画面が切り替わって戻って来た時にもその時点での時間を表示する為に、onStart で実行しています。 Activity のライフサイクル( Android Developers ) 画面の切り替えは、エミュレータのコントロールで出来ますが、内部のメニューから次の画面に遷移するようにして状況を確認できるようにしています。次画面は、Activity を継承したクラスの onCreate で初期画面( 元々のHello World ) を表示しています。Activity の追加( AndroidManifest ) その為に必要な Activity の定義は、AndroidManifest にも追加しています。その際の入力は、Android Studio が、.NextPage を候補として表示してくれました。
Override Override するメソッドは、必要なところにカーソルを置いて、CTRL + O でダイアログが表示されるので、とても便利です。
Project Structure
![]()
Min SDK Version と Max SDK Version は同じで一番新しいものを、プロジェクト作成時に指定しています。ただ、これの影響でスキンのタイトルが白くなるので、styles.xml( v21 ) の内容を変更しています。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">
</style>
</resources>
画面の TextView
<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"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textSize="40dp"
android:textColor="#ff000000"/>
</RelativeLayout>
プロジェクト作成時の HelloWorld をそのまま使っていますが、テキストを中央に表示する為に、以下のプロパティで both を指定します。あとは、テキストサイズと、テキストの色と id をプロパティから変更しています
|
|
【Android Studio 1の最新記事】
- Tools クラスを使って Livedoor の お天気Webサービスを呼び出して Google gson でリストビューに一括で投入するとこうなります
- Android の ListView で ArrayAdapter をカスタマイズして表示する時、リストビューのアイテム内にボタン等がある場合のイベント登録時の注意事項
- できる限り不必要な記述は省いて simple_list_item_2 を使った 自前クラスを扱う専用 ArrayAdapter(private) でリストビューの表示
- できるだけ難しい事をせずに、Android のリストビューでタイトルをクリックしたらそのページを表示する( 自前のオブジェクトを ArrayAdapter にセットする )
- インターネットからアイコン画像を取得してリストビューを表示する
- Android の AlertDialog を使いやすくする MessageBox クラス
- できるだけ難しい事をせずに、Android のリストビューでタイトルをクリックしたらそのページを表示する
- Android の単純な ListView の ArrayAdapter による応用の効く 4バリエーション と複数項目に即対応できる SimpleAdapter による実装
- Android Studio : インターネット上の画像を取得して、Bitmap か Drawable で ImageView に表示する
- Storage Access Framework のガイドラインに基づく、Android 4.4 とそれ以降における 画像参照
- Android Studio : GET(POST)メソッドで呼び出す際に、PHP 側のセッションを有効にする為に CookieManager を static で使用する
- Android Studio で AsyncTask / Android Studio ならではの操作でコードを楽々作成
- Android Studio でボタンをクリックして トースト(Toast) を表示する / onClick プロパティと Button へのイベント登録( Listener )
- Google スプレッドシートで、Android Studio の重要な操作のまとめ
- Android Studio で com.example. lightbox. myapplication を jp.winofsql. lightbox. threeButton に変更
- ショートカットキーを使って、Android Studio のコード記述を極限まで楽にする
- Android Studio の 『CTRL + SHIFT + I』(定義の参照) を中心に、少しでも時間短縮
- Android Strudio で行われている『スペルチェック』をオフにする( Typo: In word '.....' という表示 )
- Android Studio と Pleiades Eclipse + Android SDK が参照する Java SE ドキュメントを日本語化する


Activity の追加( AndroidManifest )
その為に必要な Activity の定義は、AndroidManifest にも追加しています。その際の入力は、Android Studio が、.NextPage を候補として表示してくれました。
Override
Override するメソッドは、必要なところにカーソルを置いて、CTRL + O でダイアログが表示されるので、とても便利です。
Project Structure
Min SDK Version と Max SDK Version は同じで一番新しいものを、プロジェクト作成時に指定しています。ただ、これの影響でスキンのタイトルが白くなるので、styles.xml( v21 ) の内容を変更しています。
あとは、テキストサイズと、テキストの色と id をプロパティから変更しています




