▼Androidメモ▼
アクティビティグループ


アクティビティグループを利用するプログラムを作成する。



ソースコード
ActivityGroupEx.java
package net.npaka.activitygroupex;
import android.app.ActivityGroup;
import android.app.LocalActivityManager;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;

//アクティビティグループの利用
public class ActivityGroupEx extends ActivityGroup 
    implements OnClickListener {
    private LinearLayout layout;
    private LocalActivityManager lam=null;
    private int count=0;

    //初期化
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        //レイアウトの生成
        layout=new LinearLayout(this);
        layout.setBackgroundColor(Color.rgb(255,255,255));
        layout.setOrientation(LinearLayout.VERTICAL);
        setContentView(layout);
        
        //ボタンの生成
        Button button=new Button(this);
        button.setText("ボタン");
        button.setOnClickListener(this);
        setLLParams(button);
        layout.addView(button);
        
        //ローカルアクティビティマネージャの取得
        lam=getLocalActivityManager();
    }

    //ボタンクリック時に呼ばれる
    public void onClick(View v) {
        count++;
        try {
            //アクティビティの追加
            Intent intent=new Intent(this,MyActivity.class);
            Window window=lam.startActivity(
                String.valueOf(count+10000),intent);
            layout.addView(window.getDecorView());
        } catch (Exception e) {
            Toast.makeText(this,e.getMessage(),
                Toast.LENGTH_LONG).show();
        }
    }

    //ライナーレイアウトのパラメータ指定
    private static void setLLParams(View view) {
        view.setLayoutParams(new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.WRAP_CONTENT,
            LinearLayout.LayoutParams.WRAP_CONTENT));
    }
}

MyActivity.java
package net.npaka.activitygroupex;
import java.util.Date;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Window;
import android.widget.TextView;

//アクティビティ
public class MyActivity extends Activity {
    //初期化
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        //テキストビューの生成
        TextView textView=new TextView(this);
        textView.setText(new Date().toString());
        textView.setTextSize(16.0f);                  
        textView.setTextColor(Color.rgb(0,0,0));
        setContentView(textView); 
    }
}



−戻る−