Contoh Android StartActivityForResult
September 11, 2020
Add Comment
Dengan bantuan metode startActivityForResult() android, kita bisa mendapatkan hasil dari aktivitas lain.
Dengan bantuan metode android startActivityForResult(), kita dapat mengirim informasi dari satu aktivitas ke aktivitas lain dan sebaliknya. Metode android startActivityForResult, memerlukan hasil dari aktivitas kedua (aktivitas yang akan dipanggil).
Dalam kasus seperti itu, kita perlu mengganti metode onActivityResult yang dipanggil secara otomatis ketika aktivitas kedua mengembalikan hasil.
File : activity_main.xml
File xml ini dibuat secara otomatis ketika Anda membuat aktivitas lain. Untuk membuat aktivitas baru Klik kanan pada paket di dalam src -> New -> Other -> Android Activity. Sekarang seret satu editText, satu textView dan satu tombol dari pallete, sekarang file xml akan terlihat seperti ini : File : second_main.xml
Sekarang mari kita menulis kode yang memanggil aktivitas lain dan mendapatkan hasil dari aktivitas itu.
Mari kita menulis kode yang menampilkan konten file activity layout kedua. File : SecondActivity.java
Metode Tanda Tangan
Ada dua varian metode startActivityForResult().public void startActivityForResult (Intent intent, int requestCode) public void startActivityForResult (Intent intent, int requestCode, Bundle options)
Contoh Android StartActivityForResult
Mari kita lihat contoh sederhana dari metode startActivityForResult android.* Main Activity
Seret satu textview dan satu tombol dari pallete, sekarang file xml akan terlihat seperti ini.File : activity_main.xml
<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_alignParentTop="true" android:layout_marginTop="48dp" android:text="Default Message" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="42dp" android:text="GetMessage" /> </RelativeLayout>
File xml ini dibuat secara otomatis ketika Anda membuat aktivitas lain. Untuk membuat aktivitas baru Klik kanan pada paket di dalam src -> New -> Other -> Android Activity. Sekarang seret satu editText, satu textView dan satu tombol dari pallete, sekarang file xml akan terlihat seperti ini : File : second_main.xml
<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".SecondActivity" > <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="61dp" android:layout_toRightOf="@+id/textView1" android:ems="10" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText1" android:layout_alignBottom="@+id/editText1" android:layout_alignParentLeft="true" android:text="Enter Message:" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText1" android:layout_centerHorizontal="true" android:layout_marginTop="34dp" android:text="Submit" /> </RelativeLayout>
Sekarang mari kita menulis kode yang memanggil aktivitas lain dan mendapatkan hasil dari aktivitas itu.
* Activiy class
File : MainActivity.javapackage com.android.startactivityforresult; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { TextView textView1; Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView1=(TextView)findViewById(R.id.textView1); button1=(Button)findViewById(R.id.button1); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivityForResult(intent, 2);// Activity is started with requestCode 2 } }); } // Call Back method to get the Message form other Activity @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // check if the request code is same as what is passed here it is 2 if(requestCode==2) { String message=data.getStringExtra("MESSAGE"); textView1.setText(message); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
Mari kita menulis kode yang menampilkan konten file activity layout kedua. File : SecondActivity.java
package com.android.startactivityforresult; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class SecondActivity extends Activity { EditText editText1; Button button1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); editText1=(EditText)findViewById(R.id.editText1); button1=(Button)findViewById(R.id.button1); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { String message=editText1.getText().toString(); Intent intent=new Intent(); intent.putExtra("MESSAGE",message); setResult(2,intent); finish();//finishing activity } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.second, menu); return true; } }
0 Response to "Contoh Android StartActivityForResult"
Posting Komentar