Activity
メソッドのボタンをクリックして、新しいOnClickListener
を開こうとしています。 OnClickListener
メソッドはどのように機能し、新しいActivity
を開始するために何を行う必要がありますか?
このタスクは、Intentsという名前のAndroidのメインビルディングブロックの1つと、Activityクラスに属するpublic void startActivity (Intent intent)
メソッドの1つを使用して実行できます。
インテントは、実行される操作の抽象的な記述です。 startActivityと共に使用してActivityを起動し、broadcastIntentを使用して関連するBroadcastReceiverコンポーネントに送信し、startService(Intent)またはbindService(Intent、ServiceConnection、int)を使用してバックグラウンドサービスと通信できます。
Intentは、異なるアプリケーションのコード間で実行時バインディングを実行する機能を提供します。その最も重要な用途は、アクティビティの起動であり、アクティビティ間の接着剤と考えることができます。基本的に、実行されるアクションの抽象的な記述を保持する受動的なデータ構造です。
公式ドキュメントを参照してください- http://developer.Android.com/reference/Android/content/Intent.html
public void startActivity (Intent intent)
-新しいアクティビティを起動するために使用されます。
したがって、2つの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);
}
});
}
}
//create a variable that contain your button
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener(){
@Override
//On click function
public void onClick(View view) {
//Create the intent to start another activity
Intent intent = new Intent(view.getContext(), AnotherActivity.class);
startActivity(intent);
}
});
OnClicklistener
を使用するか、新しいレイアウトを開くボタンのxmlコードでAndroid:onClick="myMethod"
を使用できます。そのボタンがクリックされると、myMethod関数が自動的に呼び出されます。クラスのmyMethod
関数は次のようになります。
public void myMethod(View v) {
Intent intent=new Intent(context,SecondActivty.class);
startActivity(intent);
}
そしてその中でSecondActivity.class contentviewに新しいレイアウトを設定します。
簡単:
起動アクティビティ(onclickハンドラー)
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
新しいアクティビティについて:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.
androidManifest.xmlに新しいアクティビティを追加します。
<activity Android:label="@string/app_name" Android:name="NextActivity"/>