(Tutorial Android) Menghubungkan antar Activity dengan Intent (Part 2)

Tuesday, February 09, 2016

Pada postingan sebelumnya saya telah membahas bagaimana menghubungkan antar activity dengan intent. Nah, kali ini saya akan coba melanjutkan bagian kedua dari postingan ini. Jika sebelumnya kita hanya dapat 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 menerima data dari activity kita dapat menggunakan method startActivityForResult(). Kita akan memodifikasi program sebelumnya. Simak tutorialnya sebagai berikut :

1. Buat activity baru dengan nama ThirdActivity

2. Buat sebuah layout baru dengan nama activity_third kemudian 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 agar 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 baru 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 final 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 final 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 bisa dilihat di https://github.com/wimsonevel/AndroidIntent

Sekian dan Terima Kasih
Happy Coding :)

Share this :

Previous
Next Post »
0 Komentar

Penulisan markup di komentar
  • Silakan tinggalkan komentar sesuai topik. Komentar yang menyertakan link aktif, iklan, atau sejenisnya akan dihapus.
  • Untuk menyisipkan kode gunakan <i rel="code"> kode yang akan disisipkan </i>
  • Untuk menyisipkan kode panjang gunakan <i rel="pre"> kode yang akan disisipkan </i>
  • Untuk menyisipkan quote gunakan <i rel="quote"> catatan anda </i>
  • Untuk menyisipkan gambar gunakan <i rel="image"> URL gambar </i>
  • Untuk menyisipkan video gunakan [iframe] URL embed video [/iframe]
  • Kemudian parse kode tersebut pada kotak di bawah ini
  • © 2015 Simple SEO ✔

Ads