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()); } }