(Tutorial Android) Menghubungkan Antar Activity Dengan Intent (Part 2)


Pada postingan sebelumnya aku telah membahas bagaimana menghubungkan antar activity dengan intent. Nah, kali ini aku akan coba melanjutkan bab kedua dari postingan ini. Jika sebelumnya kita hanya sanggup mengirim data dari activity utama ke activity kedua (satu arah), maka kita akan mencoba mengirim balik data dari activity kedua ke activity utama. Untuk mengirim dan mendapatkan data dari activity kita sanggup memakai method startActivityForResult(). Kita akan memodifikasi kegiatan sebelumnya. Simak tutorialnya sebagai berikut :

1. Buat activity gres dengan nama ThirdActivity

2. Buat sebuah layout gres dengan nama activity_third lalu desain sebagai berikut :


3. Modifikasi layout activity_main sebagai berikut :


4. Tambahkan method berikut ini di MainActivity, angka 48 pada method startActivityForResult() merupakan parameter konstan yang bertujuan supaya membedakan antara satu intent dari intent yang lain.

private void startThirdAct(String sometext) {
          Intent intent = new Intent(this, ThirdActivity.class);
          intent.putExtra(TAG_MESSAGE, sometext);
          startActivityForResult(intent, 48);
 } 


5. Sekarang buka ThirdActivity dan tambahkan method berikut untuk mengirim balik data ke MainActivity.

private void sendBackData(String sometext){
          Intent intent = getIntent();
          intent.putExtra(TAG_MESSAGE, sometext);
          setResult(RESULT_OK, intent);
 } 


6. Override method onActivityResult() di MainActivity. Method ini berfungsi untuk menangkap result atau data yang dikirim balik dari ThirdActivity

@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if((requestCode == 48) && (resultCode == RESULT_OK)){
                 String message = data.getStringExtra(ThirdActivity.TAG_MESSAGE);
                 Toast.makeText(this, message, Toast.LENGTH_LONG).show();
          } 
} 


7. Jangan lupa untuk mendaftarkan activity gres yang kita buat di AndroidManifest.xml


8. Berikut source code lengkap untuk MainActivity

package com.wim.androidintent;

 import android.content.Intent;
 import android.os.Bundle;
 import android.support.v7.app.AppCompatActivity;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.Toast;


  public class MainActivity extends AppCompatActivity implements View.OnClickListener{

      public static simpulan String TAG_MESSAGE = "data.MainActivity";

     private EditText txtInput;
     private Button btnSend1, btnSend2;

      @Override
     protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

             txtInput = (EditText) findViewById(R.id.txtInputData);
            btnSend1 = (Button) findViewById(R.id.btnSend1);
            btnSend2 = (Button) findViewById(R.id.btnSend2);

            btnSend1.setOnClickListener(this);
            btnSend2.setOnClickListener(this);
     }

      private void startSecondAct(String sometext) {
            Intent intent = new Intent(this, SecondActivity.class);
            intent.putExtra(TAG_MESSAGE, sometext);
            startActivity(intent);
     }

      private void startThirdAct(String sometext) {
            Intent intent = new Intent(this, ThirdActivity.class);
            intent.putExtra(TAG_MESSAGE, sometext);
            startActivityForResult(intent, 48);
     }

      @Override
     public void onClick(View view) {
            if(view == btnSend1){
                   startSecondAct(txtInput.getText().toString());
            }else if(view == btnSend2){
                   startThirdAct(txtInput.getText().toString());
            }   
     }

      @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if((requestCode == 48) && (resultCode == RESULT_OK)){
                   String message = data.getStringExtra(ThirdActivity.TAG_MESSAGE);
                   Toast.makeText(this, message, Toast.LENGTH_LONG).show();
            }
     } 
}  


9. Berikut source code lengkap untuk ThirdActivity

package com.wim.androidintent;

 import android.content.Intent;
 import android.os.Bundle;
 import android.support.v7.app.AppCompatActivity;
 import android.view.View;
import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;

  /**
 * Created by Wim on 29-Jan-16.
 */
  public class ThirdActivity extends AppCompatActivity implements View.OnClickListener{

      public static simpulan String TAG_MESSAGE = "data.ThirdActivity";

     private TextView txtShow;
     private EditText txtInput;
     private Button btnSend;

      @Override
     protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_third);

            txtShow = (TextView) findViewById(R.id.txtShow);
            txtInput = (EditText) findViewById(R.id.txtSend);
            btnSend = (Button) findViewById(R.id.btnSend);

            btnSend.setOnClickListener(this);

             Intent in = getIntent();
            String data = in.getStringExtra(MainActivity.TAG_MESSAGE);
            txtShow.setText(data);
     }

      private void sendBackData(String sometext){
            Intent intent = getIntent();
            intent.putExtra(TAG_MESSAGE, sometext);
            setResult(RESULT_OK, intent);
     }

      @Override
     public void onClick(View view) {
            if(view == btnSend){
                   sendBackData(txtInput.getText().toString());
                   finish();
            }
     }
 } 


10. Deploy dan jalankan aplikasinya maka akan tampak sebagai berikut :

Mengirim data dari MainActivity

Menerima data dari MainActivity

Mengirim balik data ke MainActivity

Menerima data balikan dari ThirdActivity

Source lengkap sanggup dilihat di https://github.com/andronut/AndroidIntent

Sekian dan Terima Kasih
Happy Coding :)

Comments

Popular posts from this blog

Implementasi Basis Data

(Tutorial Ios) Custom Uitableviewcell In Uitableview

(Tutorial Android) Image Loader Using Glide