Jawaban:
Mudah.
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
Ekstra diambil di sisi lain melalui:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.
}
Jangan lupa menambahkan aktivitas baru Anda di AndroidManifest.xml:
<activity android:label="@string/app_name" android:name="NextActivity"/>
CurrentActivity.this.startActivity(myIntent)
dan startActivity(myIntent)
?
Buat maksud untuk aktivitas ViewPerson dan berikan PersonID (untuk pencarian basis data, misalnya).
Intent i = new Intent(getBaseContext(), ViewPerson.class);
i.putExtra("PersonID", personID);
startActivity(i);
Kemudian di Aktivitas ViewPerson, Anda bisa mendapatkan bundel data tambahan, pastikan itu bukan nol (kalau-kalau Anda terkadang tidak meneruskan data), maka dapatkan datanya.
Bundle extras = getIntent().getExtras();
if(extras !=null)
{
personID = extras.getString("PersonID");
}
Sekarang jika Anda perlu berbagi data antara dua Kegiatan, Anda juga dapat memiliki Global Singleton.
public class YourApplication extends Application
{
public SomeDataClass data = new SomeDataClass();
}
Kemudian menyebutnya dalam aktivitas apa pun dengan:
YourApplication appState = ((YourApplication)this.getApplication());
appState.data.CallSomeFunctionHere(); // Do whatever you need to with data here. Could be setter/getter or some other type of logic
Respons saat ini sangat bagus tetapi jawaban yang lebih komprehensif diperlukan untuk pemula. Ada 3 cara berbeda untuk memulai aktivitas baru di Android, dan semuanya menggunakan Intent
kelas; Maksud | Pengembang Android .
onClick
atribut Button. (Pemula)OnClickListener()
melalui kelas anonim. (Menengah)switch
pernyataan. (Pro)Inilah tautan ke contoh saya jika Anda ingin mengikuti:
onClick
atribut Button. (Pemula)Tombol memiliki onClick
atribut yang ditemukan dalam file .xml:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="goToAnActivity"
android:text="to an activity" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="goToAnotherActivity"
android:text="to another activity" />
Di kelas Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
public void goToAnActivity(View view) {
Intent intent = new Intent(this, AnActivity.class);
startActivity(intent);
}
public void goToAnotherActivity(View view) {
Intent intent = new Intent(this, AnotherActivity.class);
startActivity(intent);
}
Keuntungan : Mudah dibuat dengan cepat, modular, dan dapat dengan mudah mengatur beberapa onClick
s dengan maksud yang sama.
Kerugian : Sulit dibaca saat meninjau.
OnClickListener()
melalui kelas anonim. (Menengah)Ini adalah ketika Anda menetapkan terpisah setOnClickListener()
untuk masing button
- masing dan menimpa masing onClick()
- masing dengan niatnya sendiri.
Di kelas Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(), AnActivity.class);
view.getContext().startActivity(intent);}
});
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(), AnotherActivity.class);
view.getContext().startActivity(intent);}
});
Keuntungan : Mudah dibuat dengan cepat.
Kerugian : Akan ada banyak kelas anonim yang akan membuat keterbacaan sulit saat ditinjau.
switch
pernyataan. (Pro)Ini adalah ketika Anda menggunakan switch
pernyataan untuk tombol Anda dalam onClick()
metode untuk mengelola semua tombol Aktivitas.
Di kelas Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
Button button1 = (Button) findViewById(R.id.button1);
Button button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.button1:
Intent intent1 = new Intent(this, AnActivity.class);
startActivity(intent1);
break;
case R.id.button2:
Intent intent2 = new Intent(this, AnotherActivity.class);
startActivity(intent2);
break;
default:
break;
}
Keuntungan : Manajemen tombol mudah karena semua maksud tombol terdaftar dalam satu onClick()
metode
Untuk bagian kedua dari pertanyaan, mengirim data, silakan lihat Bagaimana cara mengirimkan data antara Aktivitas di aplikasi Android?
Ketika pengguna mengklik tombol, langsung di dalam XML seperti itu:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextButton"
android:onClick="buttonClickFunction"/>
Dengan menggunakan atribut android:onClick
kami menyatakan nama metode yang harus ada pada aktivitas induk. Jadi saya harus membuat metode ini di dalam aktivitas kami seperti itu:
public void buttonClickFunction(View v)
{
Intent intent = new Intent(getApplicationContext(), Your_Next_Activity.class);
startActivity(intent);
}
Intent iinent= new Intent(Homeactivity.this,secondactivity.class);
startActivity(iinent);
Intent in = new Intent(getApplicationContext(),SecondaryScreen.class);
startActivity(in);
This is an explicit intent to start secondscreen activity.
Emmanuel,
Saya pikir info tambahan harus dimasukkan sebelum memulai aktivitas jika tidak, data belum akan tersedia jika Anda mengaksesnya di metode onCreate dari NextActivity.
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value);
CurrentActivity.this.startActivity(myIntent);
Dari Aktivitas pengiriman coba kode berikut
//EXTRA_MESSAGE is our key and it's value is 'packagename.MESSAGE'
public static final String EXTRA_MESSAGE = "packageName.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
....
//Here we declare our send button
Button sendButton = (Button) findViewById(R.id.send_button);
sendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//declare our intent object which takes two parameters, the context and the new activity name
// the name of the receiving activity is declared in the Intent Constructor
Intent intent = new Intent(getApplicationContext(), NameOfReceivingActivity.class);
String sendMessage = "hello world"
//put the text inside the intent and send it to another Activity
intent.putExtra(EXTRA_MESSAGE, sendMessage);
//start the activity
startActivity(intent);
}
Dari Aktivitas penerima coba kode berikut:
protected void onCreate(Bundle savedInstanceState) {
//use the getIntent()method to receive the data from another activity
Intent intent = getIntent();
//extract the string, with the getStringExtra method
String message = intent.getStringExtra(NewActivityName.EXTRA_MESSAGE);
Kemudian tambahkan saja kode berikut ke file AndroidManifest.xml
android:name="packagename.NameOfTheReceivingActivity"
android:label="Title of the Activity"
android:parentActivityName="packagename.NameOfSendingActivity"
Coba metode sederhana ini.
startActivity(new Intent(MainActivity.this, SecondActivity.class));
Cara untuk memulai aktivitas baru adalah menyiarkan maksud, dan ada jenis niat tertentu yang dapat Anda gunakan untuk meneruskan data dari satu aktivitas ke aktivitas lainnya. Rekomendasi saya adalah Anda memeriksa dokumen pengembang Android yang terkait dengan maksud ; itu adalah banyak info tentang subjek, dan memiliki contoh juga.
Aktivitas pertama
startActivity(Intent(this, SecondActivity::class.java)
.putExtra("key", "value"))
Aktivitas kedua
val value = getIntent().getStringExtra("key")
Saran
Selalu masukkan kunci dalam file konstan untuk cara yang lebih terkelola.
companion object {
val PUT_EXTRA_USER = "user"
}
startActivity(Intent(this, SecondActivity::class.java)
.putExtra(PUT_EXTRA_USER, "value"))
Memulai aktivitas dari aktivitas lain adalah skenario yang sangat umum di antara aplikasi android.
Untuk memulai suatu aktivitas Anda memerlukan Intent objek .
Objek niat mengambil dua parameter dalam konstruktornya
Contoh:
Jadi misalnya, jika Anda memiliki dua aktivitas, katakan HomeActivity
dan DetailActivity
dan Anda ingin mulai DetailActivity
dari HomeActivity
(HomeActivity -> DetailActivity).
Berikut ini cuplikan kode yang menunjukkan cara memulai DetailActivity dari
BerandaAktivitas
Intent i = new Intent(HomeActivity.this,DetailActivity.class);
startActivity(i);
Dan kamu sudah selesai.
Kembali ke bagian klik tombol.
Button button = (Button) findViewById(R.id.someid);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(HomeActivity.this,DetailActivity.class);
startActivity(i);
}
});
Mulai aktivitas lain dari aktivitas ini dan Anda dapat mengirimkan parameter melalui Bundle Object juga.
Intent intent = new Intent(getBaseContext(), YourActivity.class);
intent.putExtra("USER_NAME", "xyz@gmail.com");
startActivity(intent);
Retrive data dalam aktivitas lain (YourActivity)
String s = getIntent().getStringExtra("USER_NAME");
Terapkan antarmuka View.OnClickListener dan timpa metode onClick.
ImageView btnSearch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search1);
ImageView btnSearch = (ImageView) findViewById(R.id.btnSearch);
btnSearch.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnSearch: {
Intent intent = new Intent(Search.this,SearchFeedActivity.class);
startActivity(intent);
break;
}
Meskipun jawaban yang tepat telah diberikan tetapi saya di sini untuk mencari jawaban dalam bahasa Kotlin. Pertanyaan ini bukan tentang bahasa tertentu jadi saya menambahkan kode untuk menyelesaikan tugas ini dalam bahasa Kotlin.
Inilah cara Anda melakukan ini di Kotlin untuk andorid
testActivityBtn1.setOnClickListener{
val intent = Intent(applicationContext,MainActivity::class.java)
startActivity(intent)
}
Cara paling sederhana untuk membuka aktivitas dengan mengklik tombol adalah:
onclick
berfungsi. MainActivity.java
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.content.Intent;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goToAnotherActivity(View view) {
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
}
SecondActivity.java
package com.example.myapplication;
import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
}
}
AndroidManifest.xml (Cukup tambahkan blok kode ini ke yang sudah ada)
</activity>
<activity android:name=".SecondActivity">
</activity>
Ambil Tombol di xml terlebih dahulu.
<Button
android:id="@+id/pre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_launcher"
android:text="Your Text"
/>
Jadikan daftar tombol.
pre.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
});
Ketika tombol diklik:
loginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent= new Intent(getApplicationContext(), NextActivity.class);
intent.putExtra("data", value); //pass data
startActivity(intent);
}
});
Untuk menerima data tambahan dari NextActivity.class
:
Bundle extra = getIntent().getExtras();
if (extra != null){
String str = (String) extra.get("data"); // get a object
}
Tulis kode dalam aktivitas pertama Anda.
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SecondAcitvity.class);
//You can use String ,arraylist ,integer ,float and all data type.
intent.putExtra("Key","value");
startActivity(intent);
finish();
}
});
Di secondActivity.class
String name = getIntent().getStringExtra("Key");
Tempatkan widget tombol di xml seperti di bawah ini
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
/>
Setelah itu inisialisasi dan tangani pendengar klik pada Kegiatan seperti di bawah ini ..
Dalam metode Activity On Create:
Button button =(Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new
Intent(CurrentActivity.this,DesiredActivity.class);
startActivity(intent);
}
});