読者です 読者をやめる 読者になる 読者になる

liguofeng29’s blog

個人勉強用ブログだっす。

AndroidのIntent - Component属性

IntentのComponent属性はComponentNameオブジェクトを設定し、

どのコンポーネントを起動するかを指定する

Componentのコンストラクタ


・Component(String pkg, String cls)
・Component(Context pkg, String cls)
・Component(Context pkg, Class<?> cls)

Intentのメソッド


・setClass(Context packageContext, Class<?> cls)
・setClassName(Context packageContext, String className
・setClassName(String packageName, String className)

サンプル

package com.example.liguofeng.intentsample;

import android.content.ComponentName;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn = (Button) findViewById(R.id.showSecondActivityBtn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // ComponentName生成
                ComponentName cmp = new ComponentName(MainActivity.this, SecondActivity.class);
                // Intent生成
                Intent intent = new Intent();
                // Component設定
                intent.setComponent(cmp);
                // 起動
                startActivity(intent);

                /******************************************
                 * 下記2行で上記代替可能
                 * Intent intent2 = new Intent(MainActivity.this, SecondActivity.class);
                 * startActivity(intent2);
                 */
            }
        });
    }
}
package com.example.liguofeng.intentsample;

import android.content.ComponentName;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class SecondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        TextView view = (TextView) findViewById(R.id.textView);
        // ComponentName取得
        ComponentName cmp = getIntent().getComponent();

        view.setText(
                "パッケージ:" + cmp.getPackageName() +
                "\nクラス名 : " + cmp.getClassName());
    }
}

http://blog-imgs-85.fc2.com/j/a/v/javait/Component.gif