Mobile 25 May 2021 307 views 0 komentar

Latihan 7 RecyclerView dengan Memanfaatkan Fasilitas Menu

Latihan 7 RecyclerView dengan Memanfaatkan Fasilitas Menu

Apa itu Context Menu?

Sekarang mari kita buat sebuah RecyclerView dengan memanfaatkan fasilitas menu. Langkah pertama adalah dengan membuat resource directory terkait. Resource directory menu secara bawaan tidak disediakan.

Kita harus membuatnya terlebih dahulu dengan klik kanan pada direktori res newandroid resource directory. Setelah muncul dialog box seperti di bawah ini, isikan menu pada field directory name lalu Klik OK untuk menyelesaikannya.

Langkah 1: Buat Resource Menu

Kemudian klik kanan pada direktori tersebut → new menu resource file. Beri nama menu_main pada field file name.

Maka hasilnya akan terlihat seperti ini:

Setelah itu, lengkapi kodenya menjadi seperti berikut:

<?xml version="1.0" encoding="utf-8"?></code><br /><code class="language-java"><menu xmlns:android="http://schemas.android.com/apk/res/android"</code><br /><code class="language-java">    xmlns:app="http://schemas.android.com/apk/res-auto"></code><br /><code class="language-java">    <item</code><br /><code class="language-java">        android:id="@+id/action_list"</code><br /><code class="language-java">        android:title="@string/list"</code><br /><code class="language-java">        app:showAsAction="never" /></code><br /><code class="language-java">    <item</code><br /><code class="language-java">        android:id="@+id/action_grid"</code><br /><code class="language-java">        android:title="@string/grid"</code><br /><code class="language-java">        app:showAsAction="never" /></code><br /><code class="language-java">    <item</code><br /><code class="language-java">        android:id="@+id/action_cardview"</code><br /><code class="language-java">        android:title="@string/with_cardview"</code><br /><code class="language-java">        app:showAsAction="never" /></code><br /><code class="language-java"></menu>

Dan pada bagian res valuesstrings.xml, tambahkan juga string berikut:

<resources></code><br /><code class="language-java">    <string name="app_name">My Application</string></code><br /><code class="language-java">    <string name="heroes_name">Nama Pahlawan</string></code><br /><code class="language-java">    <string name="detail">Detail</string></code><br /><code class="language-java">    <string name="list">List</string></code><br /><code class="language-java">    <string name="grid">Grid</string></code><br /><code class="language-java">    <string name="with_cardview">with CardView</string></code><br /><code class="language-java">    <string name="favorite">Favorite</string></code><br /><code class="language-java">    <string name="share">Share</string></code><br /><code class="language-java"></resources>

Langkah 2: Pasang Menu di Activity

Setelah selesai, saatnya kita pasang menu tersebut di MainActivity dengan menambahkan metode berikut:

public class MainActivity extends AppCompatActivity {</code><br /><code class="language-java">    ...</code><br /><code class="language-java"> </code><br /><code class="language-java">    @Override</code><br /><code class="language-java">    protected void onCreate(Bundle savedInstanceState) {</code><br /><code class="language-java">        ...</code><br /><code class="language-java">    }</code><br /><code class="language-java"> </code><br /><code class="language-java">    private void showRecyclerList(){</code><br /><code class="language-java">        ...</code><br /><code class="language-java">    }</code><br /><code class="language-java"> </code><br /><code class="language-java">    @Override</code><br /><code class="language-java">    public boolean onCreateOptionsMenu(Menu menu) {</code><br /><code class="language-java">        getMenuInflater().inflate(R.menu.menu_main, menu);</code><br /><code class="language-java">        return super.onCreateOptionsMenu(menu);</code><br /><code class="language-java">    }</code><br /><code class="language-java"> </code><br /><code class="language-java">    @Override</code><br /><code class="language-java">    public boolean onOptionsItemSelected(MenuItem item) {</code><br /><code class="language-java">        setMode(item.getItemId());</code><br /><code class="language-java">        return super.onOptionsItemSelected(item);</code><br /><code class="language-java">    }</code><br /><code class="language-java"> </code><br /><code class="language-java">    public void setMode(int selectedMode) {</code><br /><code class="language-java">        switch (selectedMode) {</code><br /><code class="language-java">	        case R.id.action_list:</code><br /><code class="language-java">	            showRecyclerList();</code><br /><code class="language-java">	            break;</code><br /><code class="language-java">	 </code><br /><code class="language-java">	        case R.id.action_grid:</code><br /><code class="language-java">	            showRecyclerGrid();</code><br /><code class="language-java">	            break;</code><br /><code class="language-java">	 </code><br /><code class="language-java">	        case R.id.action_cardview:</code><br /><code class="language-java">	            showRecyclerCardView();</code><br /><code class="language-java">	            break;</code><br /><code class="language-java">	    }</code><br /><code class="language-java">    }</code><br /><code class="language-java">}

Langkah 3: Handle Aksi Menu

Dan untuk mempercantik tampilan, kita akan menambah metode untuk mengubah judul halaman setiap melakukan perubahan bentuk dari RecyclerView dengan menambahkan baris berikut ini

private void setActionBarTitle(String title) {</code><br /><code class="language-java">    if (getSupportActionBar() != null) {</code><br /><code class="language-java">        getSupportActionBar().setTitle(title);</code><br /><code class="language-java">    }</code><br /><code class="language-java">}

dan tambahkan variable ini di atas metode onCreate()

private String title = "Mode List";

Hasil akhir pada bagian setMode menjadi seperti berikut

public void setMode(int selectedMode) {</code><br /><code class="language-java">    switch (selectedMode) {</code><br /><code class="language-java">        case R.id.action_list:</code><br /><code class="language-java">            title = "Mode List";</code><br /><code class="language-java">            showRecyclerList();</code><br /><code class="language-java">            break;</code><br /><code class="language-java"> </code><br /><code class="language-java">        case R.id.action_grid:</code><br /><code class="language-java">            title = "Mode Grid";</code><br /><code class="language-java">            showRecyclerGrid();</code><br /><code class="language-java">            break;</code><br /><code class="language-java"> </code><br /><code class="language-java">        case R.id.action_cardview:</code><br /><code class="language-java">            title = "Mode CardView";</code><br /><code class="language-java">            showRecyclerCardView();</code><br /><code class="language-java">            break;</code><br /><code class="language-java">    }</code><br /><code class="language-java">    setActionBarTitle(title);</code><br /><code class="language-java">}

dan juga tambahkan setActionbarTitle pada awal aplikasi berjalan di metode onCreate 

@Override</code><br /><code class="language-java">protected void onCreate(Bundle savedInstanceState) {</code><br /><code class="language-java">    ...</code><br /><code class="language-java">    setActionBarTitle(title);</code><br /><code class="language-java"> </code><br /><code class="language-java">    ...</code><br /><code class="language-java">}

Jalankan kembali aplikasinya dan sekarang judul halaman akan berubah seiring perubahan bentuk RecyclerView.

Kesimpulan

Selamat mencoba, terima kasih.

Tags Artikel: #Latihan

Bagikan artikel ini:

Komentar (0)

Belum ada komentar. Jadilah yang pertama memberikan tanggapan!

Tinggalkan Komentar