0年 0月 の投稿一覧

【Android開発基礎】 端末回転時の画像内容を保存する

Android端末では画面を回転させると画面リサイズとともに表示されていた内容が初期化されてしまう望ましくない内部事情があります。
初期化されてしまえば、それまで入力していた大事なデータが消えてしまうわけなので、アプリを利用するユーザーにとっては非常に好ましくない事情となり、クレームにもつながります。
画面回転自体をNGにしてしまえば特に気にすることはありませんが、そうでない場合には、不測の事態にそなえてかならず以下の対応策を施すようにしておくことが通例です。

【画面回転時における初期化を防ぐ方法】

以下の2つのメソッドを記述していくことで回避することができます。
※メソッド内の保存情報、復元情報は製作アプリの情報と置き換えてください。

onSaveInstanceState

onRestoreInstanceState



具体的な記述内容としては以下を参考にしてください。

onSaveInstanceState

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    TextView txtBackUp = (TextView)findViewById(R.id.txtTmp);
    outState.putString("txtBackUp",txtBackUp.getText().toString());
}

onRestoreInstanceState

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState){
    super.onRestoreInstanceState(savedInstanceState);
    TextView txtRestore = (TextView)findViewById(R.id.txtTmp);
    txtRestore.setText(savedInstanceState.getString("txtBackUp"));
}

【Android開発基礎】ボタンクリック イベントリスナー

Android開発でよく使用する機能のとして、イベントリスナーというものがあります。
例えば、ボタンをクリックした時にある処理を実行するなど、なんらかのイベントが発生した時にだけ呼び出されるメソッドが用意されたイベント専用のクラスがイベントリスナーです。
このイベントリスナーについて簡単な例をもとに見ていきましょう。

以下のようなちょっとしたデザインを作ってみます。
処理内容をボタンクリック時にウィジェットTextViewに何かしらの文字を入力するといったものにします。
ボタンID:btnTmp
TextViewID:txtTmp

Javaコードで以下のようにコードを記述。

1.ボタンのインスタンスを作成
Button btn = (Button)findViewById(R.id.btnTmp);

2.ボタンにイベントリスナーを登録
btn.setOnClickListener(
・・・
・・・
);

3.実装クラスを用意
new View.OnClickListener() {
・・・
}

実行結果は以下のようになります。