Hai sobat, pada artikel kemarin yang berjudul Mengatur RecyclerView ItemClick Listener, telah ditunjukkan cara memperlihatkan perintah click listener yang sebetulnya tidak ada pada bjek RecyclerView. Dan di artikle kali ini akan dijelaskan cara mengirimkan JSONObjek ke activity lain memakai intent..
Mungkin pada artikel sebelumnya aku telah menulis artikel tutorial android yang sebetulnya di dalamnya terdapat fungsi mengirim objek dari activity lain memakai intent. Tapi jikalau objek yang inigin kita kirim yaitu objek dari JSON? Praktis saja, dengan memakai intent putextra, kita sanggup mengirimkannya ke activity yang kita mau.
Penggunaanya hampir sama dengan intent putextra lainya, hanya saja objek yang akan kita kirim kita panggil terlebih dahulu pada activity sebelumnya dan selanjutnya tinggal kita ambil ketika activity berpindah. Untuk lebh jelasnya teman sanggup lihat langkah-langkah di bawah ini
Pada arikel kemarin kita telah menambahkan perintah ketika RecyclerView diklik, dan kini kita akan melanjutkanya supaya lebih mudah. Silahkan teman buka link berikut jikalau belum menciptakan project pada artikel sebelumnya. (Tutorial Android dengan Retrofit HTTP Library)
Nah untuk membuatnya, pertama buka project RetrofitHTTPLybrary, sehabis itu tambahkan activity gres dengan nama DetailActivity
Buka MainActivity.java, masukkan isyarat berikut ini di dalam perintah onItemTouchListener
Keseluruhan dari MainActivity akan nampak menyerupai berikut ini
Di dalam isyarat MainActivity tersebut, terdapat isyarat Intent dimana ia mengirimkan objek JSON dengan memanggil variablenya. Selanjutnya kita buat tampilan pada activity detail, di dalamnya kita akan menampilkan data lebih di dalamnya menyerupai gambar, judul, deskripsi dll. untuk membuatnya, pada activity_detail.xml, atur layoutnya menyerupai berikut ini
Jika sudah, selanjutnya berpindah ke DetailActivity.java dan buat kodenya menyerupai berikut ini
Pada isyarat di atas, DetaiActivity akan mendapatkan kiriman dari activity sebelumnya dengan isyarat getStringExtra kemudian berubah objek pada activity Detai sesuai dengan nilai variable pada Json.
Untuk menciptakan supaya tampilanya lebih manis dan kegunaanya makin bagus, kita tambahkan tombol kembali di sebelah kiri pojok. Caranya sangat gampang sekali, hanya dengan membuka AndroidManifest.xml dan tambahkan isyarat parent di dalam tag application menyerupai berikut ini
Jika sudah, jalankan aplikasinya dengan menentukan hidangan Run 'app', mkaa tampilanya akan menyerupai berikut ini
Dan itu lha cara mengirim objek JSON ke activity lain.
Sekian artikel tentang Mengirim JSONObject ke Activity Lain Mengunakan Intent, semoga bermanfaat.
Mungkin pada artikel sebelumnya aku telah menulis artikel tutorial android yang sebetulnya di dalamnya terdapat fungsi mengirim objek dari activity lain memakai intent. Tapi jikalau objek yang inigin kita kirim yaitu objek dari JSON? Praktis saja, dengan memakai intent putextra, kita sanggup mengirimkannya ke activity yang kita mau.
Penggunaanya hampir sama dengan intent putextra lainya, hanya saja objek yang akan kita kirim kita panggil terlebih dahulu pada activity sebelumnya dan selanjutnya tinggal kita ambil ketika activity berpindah. Untuk lebh jelasnya teman sanggup lihat langkah-langkah di bawah ini
Baca juga "Cara Memasang Musik di Blog"
Pada arikel kemarin kita telah menambahkan perintah ketika RecyclerView diklik, dan kini kita akan melanjutkanya supaya lebih mudah. Silahkan teman buka link berikut jikalau belum menciptakan project pada artikel sebelumnya. (Tutorial Android dengan Retrofit HTTP Library)
Nah untuk membuatnya, pertama buka project RetrofitHTTPLybrary, sehabis itu tambahkan activity gres dengan nama DetailActivity
Buka MainActivity.java, masukkan isyarat berikut ini di dalam perintah onItemTouchListener
Intent i = new Intent(MainActivity.this, DetailActivity.class); i.putExtra("title", movies.get(position).getTitle()); i.putExtra("date", movies.get(position).getReleaseDate()); i.putExtra("vote", movies.get(position).getVoteAverage().toString()); i.putExtra("overview", movies.get(position).getOverview()); i.putExtra("bg", movies.get(position).getPosterPath()); MainActivity.this.startActivity(i); Keseluruhan dari MainActivity akan nampak menyerupai berikut ini
package com.blogsetyaaji.retrofithttplibrary; import android.content.Context; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; import com.blogsetyaaji.retrofithttplibrary.Adapter.MoviesAdapter; import com.blogsetyaaji.retrofithttplibrary.Model.Movie; import com.blogsetyaaji.retrofithttplibrary.Model.MovieResponse; import com.blogsetyaaji.retrofithttplibrary.Rest.ApiClient; import com.blogsetyaaji.retrofithttplibrary.Rest.ApiInterface; import java.util.List; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; public class MainActivity extends AppCompatActivity { private static tamat String TAG = MainActivity.class.getSimpleName(); // TODO - insert your themoviedb.org API KEY here private tamat static String API_KEY = "e5013e88aad0bad4821bdac93d1d6a30"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (API_KEY.isEmpty()) { Toast.makeText(getApplicationContext(), "Please obtain your API KEY first from themoviedb.org", Toast.LENGTH_LONG).show(); return; } tamat RecyclerView recyclerView = (RecyclerView) findViewById(R.id.movie_recycler); recyclerView.setLayoutManager(new LinearLayoutManager(this)); ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class); Call<MovieResponse> call = apiService.getTopRatedMovies(API_KEY); call.enqueue(new Callback<MovieResponse>() { @Override public void onResponse(Call<MovieResponse>call, Response<MovieResponse> response) { tamat List<Movie> movies = response.body().getResults(); Log.d(TAG, "Number of movies received: " + movies.size()); Toast.makeText(MainActivity.this, "Number of movies received: " + movies.size(), Toast.LENGTH_LONG).show(); recyclerView.setAdapter(new MoviesAdapter(movies, R.layout.list_item_movie, getApplicationContext())); /*perintah klik recyclerview*/ recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() { GestureDetector gestureDetector = new GestureDetector(getApplicationContext(), new GestureDetector.SimpleOnGestureListener() { public boolean onSingleTapUp(MotionEvent e){ return true; } }); @Override public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { View child = rv.findChildViewUnder(e.getX(), e.getY()); if (child != null && gestureDetector.onTouchEvent(e)){ int position = rv.getChildAdapterPosition(child); Toast.makeText(getApplicationContext(), "Id : " + movies.get(position).getId() + " selected", Toast.LENGTH_SHORT).show(); Intent i = new Intent(MainActivity.this, DetailActivity.class); i.putExtra("title", movies.get(position).getTitle()); i.putExtra("date", movies.get(position).getReleaseDate()); i.putExtra("vote", movies.get(position).getVoteAverage().toString()); i.putExtra("overview", movies.get(position).getOverview()); i.putExtra("bg", movies.get(position).getPosterPath()); MainActivity.this.startActivity(i); } return false; } @Override public void onTouchEvent(RecyclerView rv, MotionEvent e) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } }); } @Override public void onFailure(Call<MovieResponse>call, Throwable t) { // Log error here since request failed Log.e(TAG, t.toString()); } }); } } Di dalam isyarat MainActivity tersebut, terdapat isyarat Intent dimana ia mengirimkan objek JSON dengan memanggil variablenya. Selanjutnya kita buat tampilan pada activity detail, di dalamnya kita akan menampilkan data lebih di dalamnya menyerupai gambar, judul, deskripsi dll. untuk membuatnya, pada activity_detail.xml, atur layoutnya menyerupai berikut ini
<?xml version="1.0" encoding="utf-8"?> <ScrollView 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" tools:context="com.blogsetyaaji.retrofithttplibrary.DetailActivity"> <LinearLayout android:id="@+id/lay1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/bg" android:layout_width="match_parent" android:layout_height="300dp" android:layout_gravity="center_horizontal" android:background="#000" /> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp"> <LinearLayout android:id="@+id/lay2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/txtTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Title" android:textSize="24sp" android:textStyle="bold" /> <TextView android:id="@+id/txtDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ID" android:textSize="18sp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="35dp" android:layout_alignParentRight="true" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:id="@+id/rating_image" android:layout_width="25dp" android:layout_height="25dp" android:layout_centerInParent="true" android:scaleType="centerCrop" android:src="@drawable/star" android:tint="@color/colorAccent" /> <TextView android:id="@+id/txtrating" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:text="5.0" android:textSize="20sp" /> </LinearLayout> <TextView android:id="@+id/txtDescrip" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_below="@id/lay2" android:layout_marginLeft="3dp" android:layout_marginRight="3dp" android:layout_marginTop="10dp" android:text="Description" /> </RelativeLayout> </android.support.v7.widget.CardView> </LinearLayout> </ScrollView> Jika sudah, selanjutnya berpindah ke DetailActivity.java dan buat kodenya menyerupai berikut ini
package com.blogsetyaaji.retrofithttplibrary; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; import com.squareup.picasso.Picasso; import org.w3c.dom.Text; public class DetailActivity extends AppCompatActivity { public TextView txtTitle, txtoverview, txtdate, txtvote; public ImageView bg; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); txtTitle = (TextView) findViewById(R.id.txtTitle); txtTitle.setText(getIntent().getStringExtra("title")); txtdate = (TextView) findViewById(R.id.txtDate); txtdate.setText(getIntent().getStringExtra("date")); txtoverview = (TextView) findViewById(R.id.txtDescrip); txtoverview.setText(getIntent().getStringExtra("overview")); txtvote = (TextView) findViewById(R.id.txtrating); txtvote.setText(getIntent().getStringExtra("vote")); bg = (ImageView) findViewById(R.id.bg); Picasso.with(this) .load("https://image.tmdb.org/t/p/w300_and_h450_bestv2" + getIntent().getStringExtra("bg")) .resize(200, 300) .into(bg); } } Pada isyarat di atas, DetaiActivity akan mendapatkan kiriman dari activity sebelumnya dengan isyarat getStringExtra kemudian berubah objek pada activity Detai sesuai dengan nilai variable pada Json.
Untuk menciptakan supaya tampilanya lebih manis dan kegunaanya makin bagus, kita tambahkan tombol kembali di sebelah kiri pojok. Caranya sangat gampang sekali, hanya dengan membuka AndroidManifest.xml dan tambahkan isyarat parent di dalam tag application menyerupai berikut ini
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.blogsetyaaji.retrofithttplibrary"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".DetailActivity" android:parentActivityName=".MainActivity"></activity> </application> </manifest> Jika sudah, jalankan aplikasinya dengan menentukan hidangan Run 'app', mkaa tampilanya akan menyerupai berikut ini
Dan itu lha cara mengirim objek JSON ke activity lain.
Sekian artikel tentang Mengirim JSONObject ke Activity Lain Mengunakan Intent, semoga bermanfaat.
Tag :
Pemrograman,
Pemrograman Android


0 Komentar untuk "Mengirim Jsonobject Ke Activity Lain Mengunakan Intent"