fc2ブログ

戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
21
22
23
25
26
27
28
29
30
11

タスク管理 - インテントフラグ:Intent#setFlags

Intent#setFlags はstartActivity()によりアクティビティを起動する際に、アクティビティのタスクへの関連付けの変更に使用します。
関連付けを変更することで、スタックにつまれたアクティビティを削除するなどできます。

Reference: Intent
ソフトウェア技術ドキュメントを勝手に翻訳 - 1.3 タスクとバックスタック - タスクの管理

■ ソースコードで定義 -----------------------------------------
Intent intent = new Intent(this, NextActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);


■ インテントフラグ種類 ---------------------------------------
Intent#FLAG_ACTIVITY_NEW_TASK
  新しいタスクでアクティビティを開始します。

Intent#FLAG_ACTIVITY_SINGLE_TOP
  現在表示中のアクティビティ(スタック最上位)が自身と同じアクティビティを開始した場合、起動しない。
  動作は以下の通り(A、B、C、Dはアクティビティ)
  ・A→B→C→D→D にはならない。A→B→C→Dのまま。
  ・A→B→C→D→B にはなる。

Intent#FLAG_ACTIVITY_CLEAR_TOP
  開始されたアクティビティがすでに現在のタスクで実行中の場合、実行中のアクティビティを再開する。
  再開されたアクティビティより上に詰まれた(新しい)アクティビティはすべてが破棄される。
  動作は以下の通り(A、B、C、Dはアクティビティ)
  ・A→B→C→D の時にDがBを呼ぶ
  ・A→B (CとDは破棄される)

  ※破棄されるアクティビティは onDestory() が実行されます。
   呼び出し元の onPause()、onStop() は実行されません
スポンサーサイト



タイトルバーの設定

Activity の上段に表示されるタイトルバーの設定方法です。

■ 画面イメージ -----------------------------------------------
android_Title.png

■ タイトルバー設定 -------------------------------------------
タイトルバーに表示する文字列と文字色の設定は Javaソースコードで設定できますが
背景色はスタイルからしか設定することができません。

表示・非表示の切り替えは Activity#requestWindowFeature(int featureId) で行えます。
ただし Activity#setContentView の前に呼び出さないとエラーが発生してしまいます。

package jp.inujirushi.sample.activity;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.LinearLayout;

public class TitleActivity extends Activity {
/** アクティビティを生成したときに呼ばれます。 */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// タイトルを非表示にする(setContentView より前に呼び出さないとエラー)
//requestWindowFeature(Window.FEATURE_NO_TITLE);

// 画面を設定する
setContentView(R.layout.main);

// タイトル名を設定する
setTitle("てすと");
// タイトル色を設定する
setTitleColor(Color.BLACK);
}
}


<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="SampleTitle">
<item name="android:windowTitleBackgroundStyle">@style/TitleColor</item>
</style>
<style name="TitleColor">
<item name="android:background">#ffffffff</item>
</style>
</resources>


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jp.inujirushi.sample"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:label="@string/app_name" android:name=".activity.TitleActivity"
android:theme="@style/SampleTitle">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始