Cara Transfer/Mengirim Data Menggunakan SharedPreference dan Intent pada Android

Dalam pemrograman kita menemukan kondisi dimana suatu index harus membawa value tersendiri yang telah didapatkan atau yang telah kita set sebelumnya.

Misalnya begini, pada listview kan banyak terdapat item-item, kita akan membawa suatu value milik item 4 ke proses selanjutnya. Untuk bisa membawa value tersebut, dalam hal ini ada dua hal akan saya demokan yaitu  SharedPreference dan Intent

SHARED PREFERENCE

SharePreference adalah alat bantu yang dapat mengirim data bertipe primitif (Integer, String, double, boolean),

bisa juga bertipe lainnya tapi harus dengan beberapa modifikasi. Namun kali ini kita pelajari yang simple-simple aja dulu agar mudah di mengerti.

SharedPreference bekerja dengan pola matching antara key dan valuenya. misalnya key saat digunakan penyimpanan adalah A dan valuenya adalah SAYA, maka saat pemanggilannya kita cuma perlu menggunakan key nya saja yaitu A.

IMPLEMENTASI

Siapkan 2 layout.xml untuk percobaan :

  1. activity_first.xml
  2. activity_second.xml

Siapkan 2 class.java

  1. FirstActivity.java
  2. SecondActivity.java

Baca juga ( Cara Penulisan Beberapa File Di Java Android )

activity_first.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="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:orientation="vertical"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.putuguna.projecttesting.FirstActivity">



    <TextView
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hi!! find more tutorial on www.putuguna.com"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/inputtext_value"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btn_goNext"
        android:text="Next"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="Dalam video ini saya telah mencoba dengan 2 hal, SharedPreference dan Intent"/>

</LinearLayout>

activity_second.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_weight="1"
        android:id="@+id/second_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="HALLO YOU ARE IN THE SECOND ACTIVITY"
        android:gravity="center"/>

    <Button
        android:id="@+id/btn_back"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Back"/>

</LinearLayout>

FirstActivity.java

package com.example.putuguna.projecttesting;

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

public class FirstActivity extends AppCompatActivity {

    public static final String KEY_SHARED = "FirstActivity.KEY";

    private EditText editText_inputValue;
    private Button btn_goNext;

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

        editText_inputValue = (EditText) findViewById(R.id.inputtext_value);
        btn_goNext = (Button) findViewById(R.id.btn_goNext);

        btn_goNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                /**
                 * misalnya kita akan ambil valuenya dari apa yang
                 * kita input di EditText
                 */
                String value = editText_inputValue.getText().toString();

                /**
                 * selanjutnya kita akan mengirim value ini ke Activity selanjutnya
                 */
                SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(FirstActivity.this);
                SharedPreferences.Editor edit = sharedPreferences.edit();
                edit.putString(KEY_SHARED, value);
                edit.commit();

                Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
                startActivity(intent);
            }
        });

    }
}

Perhatikan KEY_SHARED nya, saya tempatkan di sini agar kalian mudah paham bahwa KEY_SHARED tersebut digunakan pada FirstActivity.java. Beberapa developer membuat class tersendiri untuk menampung KEY_SHARED agar lebih terstruktur. Tapi tidak masalah untuk belajar kita gunakan seperti contoh saja. inget TIPENYA harus public ya, karena kita akan memanggilanya juga dari class selanjutnya.

SecondActivity.java

package com.example.putuguna.projecttesting;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

/**
 * Created by putuguna on 17/06/16.
 */
public class SecondActivity extends AppCompatActivity{

    private Button mBtnBack;
    private TextView outPut;

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

        mBtnBack = (Button) findViewById(R.id.btn_back);
        outPut = (TextView) findViewById(R.id.second_layout);

        /**
         * kita ambil value yang telah diset sebelumnya dengan KEY yang sama
         */


        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(SecondActivity.this);
        String value = sharedPreferences.getString(FirstActivity.KEY_SHARED, null);

        outPut.setText(value);

        mBtnBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
    }
}

Perhatikan juga, proses pemanggilan KEY_SHARED menggunakan nama class sebelumnya, agar bisa diakses seperti inilah tadi kita gunakan tipe data public pada KEY_SHARED

INTENT

Intent digunakan tidak hanya untuk pindah dari Activity satu ke Activity lainnya. Intent juga dapat berfunsing mengirim data sama hal nya seperti SharedPreference. cara menggunakannya yaitu dengan menggunakan intent.putExtra(KEY_SHARED, value);

IMPLEMETASI

Caranya cukup mudah kalian tinggal ganti SharedPreference tadi cukup dengan proses intent, perhatikan baik baik :

Oya disini juga tidak hanya untuk mengirim String, tapi laiinya juga ada seperti terlihat di bawah ini

Di FirstActivity.java kalian hilangkan SharedPreference dan modifikasi Intent kalian menjadi :


Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
                intent.putExtra(KEY_SHARED, value);
                startActivity(intent);

Masuk ke SecondActivity.java, hilangkan juga SharedPreference nya, dan gunakan cara berikut untuk memanggil value yang telah di passing melalui Intent :

String value = getIntent().getExtras().getString(FirstActivity.KEY_SHARED);

Cukup mudah bukan, silakan kalian coba coba terlebih dahulu, jika ada yang perlu ditanyakan bisa langsung di kolom komentar. Happy coding!! have fun!!

(Visited 153 times, 1 visits today)



Baca juga :


About The Author

Related Posts

No Responses

Add Comment

Berlangganan Artikel

Untuk mendaftarkan tutorial pemrograman terbaru dari putuguna[dot]com, silakan tuliskan email kalian dibawah ini