あるアクティビティ画面から別のアクティビティ画面に移動する方法は?最初の画面では、ボタンをクリックすると別のアクティビティ画面に移動する必要があるボタンが1つあります。
OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(action));
}
};
Button button = (Button) findViewById(id);
button.setOnClickListener(onClickListener);
最も些細なケース(アクティビティから呼び出される):
startActivity(new Intent(this, ActivityToLaunch.class));
詳細はこちら: http://developer.Android.com/guide/topics/fundamentals.html
Button x.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
Intent i = new Intent(y.this, Activity.class);
startActivity(i);
}
});
ここで、Button xのリスナーを定義しました。 OSはこのメソッドを呼び出し、Intent iで参照されるアクティビティを開始します。
公式のチュートリアル例を次に示します。 http://developer.Android.com/guide/tutorials/notepad/notepad-ex2.html
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(TestActivity.this,second.class));
}
});
public void onClick(View v)
{
Intent myintent = new Intent(currentclass.this, nextactivity.class);
startActivity(myintent);
}
このタスクは、Intentsという名前のAndroidのメインビルディングブロックの1つと、Activityクラスに属するpublic void startActivity (Intent intent)
メソッドの1つを使用して実行できます。
インテントは、実行される操作の抽象的な記述です。 startActivityと共に使用してActivityを起動し、broadcastIntentを使用して関連するBroadcastReceiverコンポーネントに送信し、startService(Intent)またはbindService(Intent、ServiceConnection、int)を使用してバックグラウンドサービスと通信できます。
インテントは、異なるアプリケーションのコード間で実行時バインディングを実行する機能を提供します。その最も重要な用途は、アクティビティの起動であり、アクティビティ間の接着剤と考えることができます。基本的に、実行されるアクションの抽象的な記述を保持する受動的なデータ構造です。
公式ドキュメントを参照してください- http://developer.Android.com/reference/Android/content/Intent.html
public void startActivity (Intent intent)
-新しいアクティビティを起動するために使用されます。
したがって、2つのActivityクラスがあり、ボタンのクリックでOnClickListener()
を使用して、1つのActivityから別のActivityに移動するとします-
PresentActivity-これは、2番目のアクティビティに移動する現在のアクティビティです。
NextActivity-これは、移動する次のアクティビティです。
そのため、インテントは次のようになります
_Intent(PresentActivity.this, NextActivity.class)
_
最後に、これは完全なコードになります
_ public class PresentActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.content_layout_id);
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class);
// currentContext.startActivity(activityChangeIntent);
PresentActivity.this.startActivity(activityChangeIntent);
}
});
}
}
_
この例は、ボタンクリックに関連しています。ボタンクリックのOnClickListener()
内に記述されたコードは、アクティビティを切り替えたい任意の場所で使用できます。
final Context cont = this;
Button btnClickABC =(Button)findViewById(R.id.btnClickABC);
btnClickABC.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(cont, NextActivity.class));
}
});
次のコードを使用してください。これがあなたのお役に立てば幸いです。
Button button = (Button)findViewById(R.id.xxx);
button .setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(CurrentActivity.this,NextActivity.class);
startActivity(intent);
}
});
xxxは、ボタンのxmlからのIDです。
あるアクティビティから別のアクティビティへの切り替えは非常に簡単ですが、新しいアクティビティには注意が必要です。次のクラスは、AndroidManifest.xml
で定義する必要があります。これはテスタークラスです。
<activity
Android:name=".Tester"
Android:label="@string/title_activity_tester" >`enter code here`
</activity>
final Button button = (Button) findViewById(R.id.btnGo);// btnGo is id
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(CurrentClass.this, Tester.class);
startActivity(i);
}
startActivity(new Intent(this,newActivity.class));
次のコードスニペットを使用して、次の画面に移動できます。
Kotlin
startActivity(Intent(this, LoginActivity::class.Java))
Java
startActivity(new Intent(this, LoginActivity.class))
リファレンスは次のとおりです。 Android Developers-別のアクティビティを開始する