明示的インテント(Explicit Intents)は、アクティビティなどのコンポーネントを明示的に指定して利用する方法です。通常、同一アプリケーション内のアクティビティ間で利用されます。
明示的インテントは、以下のように呼び出します。
package com.example.youfit.hogeapplication; import android.app.Activity; import android.os.Bundle; public class NextActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_next); } }
Intent intent = new Intent(this, HogeActivity.class);
startActivity(intent);
実際の例を見てみましょう。
MainActivity画面のボタンを押すことで、NextActivity画面が呼び出しています。
●MainActivity画面
package com.example.youfit.hogeapplication;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// クリックイベントを取得したいボタン
Button btnSend =(Button)this.findViewById(R.id.button);
btnSend.setOnClickListener(this);
}
@Override
// クリック時に呼ばれるメソッド
public void onClick(View v) {
// NextActivityを呼び出す
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
}
}
26、27行で明示的インテントを使用しています。
●NextActivity画面
package com.example.youfit.hogeapplication;
import android.app.Activity;
import android.os.Bundle;
public class NextActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next);
}
}