Belajar membuat Android Action Bar Studi Kasus Aplikasi Jadwal Pelajaran

Android Action Bar adalah Salah satu navigasi andalan yang dipakai oleh para developer adalah pemanfaatan action bar. Sebetulnya apa sih action bar itu kalau dari kata-katanya sih aratinya bar yang digunakan untuk mentrigger suatu aksi. Nah barnya ini bisa seperti menu bar, tool bar, sliding bar (navigation drawer), tab bar,  apa lagi yah, coba cari di devleoper.android.com dan androidhive.info
Untuk lebih jelasnya ini ada gambar bisa dilihat di http://androidhive.info
Pada kesempatan kali ini kita akan coba gunakan action bar sebagai action buttons dan overflow menu untuk membuat aplikasi jadwal pelajaran
Bagusnya sih kalau buat aplikasi kita buat dulu design user interfacenya. Kalau untu kebutuhan ini berarti di action barnya ada menu untuk menampilkan jadwal (Senin, Selasa, Rabu, Kamis, Jumat, Semua).





Setelah klik Next samapi Finish maka project baru akan tergenerate.

2. Sekarang kita siapkan menu untuk aplikasi ini, masuk directory res/menu lalu edit main.xml

01<menu xmlns:android="http://schemas.android.com/apk/res/android" >
02 
03    <item
04        android:id="@+id/action_senin"
05        android:orderInCategory="100"
06        android:showAsAction="never"
07        android:title="Senin"/>
08    <item
09        android:id="@+id/action_selasa"
10        android:orderInCategory="100"
11        android:showAsAction="never"
12        android:title="Selasa"/>
13    <item
14        android:id="@+id/action_rabu"
15        android:orderInCategory="100"
16        android:showAsAction="never"
17        android:title="Rabu"/>
18    <item
19        android:id="@+id/action_kamis"
20        android:orderInCategory="100"
21        android:showAsAction="never"
22        android:title="Kamis"/>
23    <item
24        android:id="@+id/action_jumat"
25        android:orderInCategory="100"
26        android:showAsAction="never"
27        android:title="Jumat"/>
28 
29</menu>

3. Sekarang kita urus layout user interfacenya, edit file res/layout activity_main.xml

01<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
02    xmlns:tools="http://schemas.android.com/tools"
03    android:layout_width="match_parent"
04    android:layout_height="match_parent"
05    android:paddingBottom="@dimen/activity_vertical_margin"
06    android:paddingLeft="@dimen/activity_horizontal_margin"
07    android:paddingRight="@dimen/activity_horizontal_margin"
08    android:paddingTop="@dimen/activity_vertical_margin"
09    tools:context=".MainActivity" >
10 
11    <TextView
12        android:id="@+id/textViewHari"
13        android:layout_width="wrap_content"
14        android:layout_height="wrap_content"
15        android:layout_alignParentLeft="true"
16        android:layout_alignParentTop="true"
17        android:text=""
18        android:textAppearance="?android:attr/textAppearanceMedium" />
19 
20    <ListView
21        android:id="@+id/listViewJadwal"
22        android:layout_width="match_parent"
23        android:layout_height="wrap_content"
24        android:layout_alignLeft="@+id/textViewHari"
25        android:layout_below="@+id/textViewHari" >
26    </ListView>
27 
28</RelativeLayout>

4. Untuk layout baris pada list view pada directory res/layout buat file layout baru dengan nama row_jadwal.xml

01<?xml version="1.0" encoding="utf-8"?>
02<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
03    android:layout_width="match_parent"
04    android:layout_height="match_parent" >
05 
06    <TextView
07        android:id="@+id/textViewRowJam"
08        android:layout_width="75dp"
09        android:layout_height="wrap_content"
10        android:layout_alignParentLeft="true"
11        android:layout_alignParentTop="true"
12        android:text="TextView" />
13 
14    <TextView
15        android:id="@+id/textViewRowPelajaran"
16        android:layout_width="wrap_content"
17        android:layout_height="wrap_content"
18        android:layout_alignParentTop="true"
19        android:paddingLeft="10dp"
20        android:layout_toRightOf="@+id/textViewRowJam"
21        android:text="TextView" />
22 
23</RelativeLayout>

3. Buat class baru dengan nama Jadwal.java lalu ketikkan kode berkut

01package com.agusharyanto.jadwalpelajaran;
02 
03public class Jadwal {
04    public String hari="";
05    public String jam="";
06    public String pelajaran="";
07 
08    public Jadwal (String pday, String ptime, String plesson){
09        this.hari = pday;
10        this.jam = ptime;
11        this.pelajaran = plesson;
12    }
13 
14}

4. Buat Class baru dengan nama AdapterJadwal.java lalu ketikan kode berikut

01package com.agusharyanto.jadwalpelajaran;
02 
03import java.util.ArrayList;
04 
05import android.app.Activity;
06import android.content.Context;
07import android.view.LayoutInflater;
08import android.view.View;
09import android.view.ViewGroup;
10import android.widget.ArrayAdapter;
11import android.widget.TextView;
12 
13public class AdapterJadwal extends ArrayAdapter<Jadwal> {
14    private Activity activity;
15    private ArrayList<Jadwal> lJadwal;
16    private static LayoutInflater inflater = null;
17 
18    public AdapterJadwal (Activity activity, int textViewResourceId,ArrayList<Jadwal> al_Jadwal) {
19        super(activity, textViewResourceId, al_Jadwal);
20        try {
21            this.activity = activity;
22            this.lJadwal = al_Jadwal;
23 
24            inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
25 
26        } catch (Exception e) {
27 
28        }
29    }
30 
31    public int getCount() {
32        return lJadwal.size();
33    }
34 
35    public long getItemId(int position) {
36        return position;
37    }
38 
39    public static class ViewHolder {
40        public TextView jam;
41        public TextView pelajaran;
42 
43    }
44 
45    public View getView(int position, View convertView, ViewGroup parent) {
46        View vi = convertView;
47        final ViewHolder holder;
48        try {
49            if (convertView == null) {
50                vi = inflater.inflate(R.layout.row_jadwal, null);
51                holder = new ViewHolder();
52 
53                holder.jam = (TextView) vi.findViewById(R.id.textViewRowJam);
54                holder.pelajaran = (TextView) vi.findViewById(R.id.textViewRowPelajaran);
55 
56                vi.setTag(holder);
57            } else {
58                holder = (ViewHolder) vi.getTag();
59            }
60 
61            holder.jam.setText(lJadwal.get(position).jam);
62            holder.pelajaran.setText(lJadwal.get(position).pelajaran);
63 
64        } catch (Exception e) {
65 
66        }
67        return vi;
68    }
69}

4. Edit MainActivity.java lalu ketikkan kode berikut

001package com.agusharyanto.jadwalpelajaran;
002 
003import java.util.ArrayList;
004 
005import android.app.Activity;
006import android.os.Bundle;
007import android.view.Menu;
008import android.view.MenuItem;
009import android.widget.ListView;
010import android.widget.TextView;
011 
012public class MainActivity extends Activity {
013    ArrayList <Jadwal> list_jadwal = new ArrayList<Jadwal>();
014    TextView tvhari;
015    ListView listviewjadwal ;
016    @Override
017    protected void onCreate(Bundle savedInstanceState) {
018        super.onCreate(savedInstanceState);
019        setContentView(R.layout.activity_main);
020        tvhari = (TextView) findViewById(R.id.textViewHari);
021        listviewjadwal = (ListView) findViewById(R.id.listViewJadwal);
022        initData();
023    }
024 
025    public void initData() {
026        list_jadwal.add(new Jadwal("Senin","08:00-10:00","Matematika"));
027        list_jadwal.add(new Jadwal("Senin","10:00-12:00","Agama Islam"));
028        list_jadwal.add(new Jadwal("Senin","12:00-13:00","Istirahat"));
029        list_jadwal.add(new Jadwal("Senin","13:00-15:00","Fisika"));
030        list_jadwal.add(new Jadwal("Selasa","08:00-10:00","Bahaa Indonesia"));
031        list_jadwal.add(new Jadwal("Selasa","10:00-12:00","Kimia"));
032        list_jadwal.add(new Jadwal("Selasa","12:00-13:00","Istirahat"));
033        list_jadwal.add(new Jadwal("Selasa","13:00-15:00","Biologi"));
034        list_jadwal.add(new Jadwal("Rabu","08:00-10:00","Matematika"));
035        list_jadwal.add(new Jadwal("Rabu","10:00-12:00","Seni Rupa"));
036        list_jadwal.add(new Jadwal("Rabu","12:00-13:00","Istirahat"));
037        list_jadwal.add(new Jadwal("Rabu","13:00-15:00","Bahasa Inggris"));
038        list_jadwal.add(new Jadwal("Kamis","08:00-10:00","Fisika"));
039        list_jadwal.add(new Jadwal("Kamis","10:00-12:00","Penjaskes"));
040        list_jadwal.add(new Jadwal("Kamis","12:00-13:00","Istirahat"));
041        list_jadwal.add(new Jadwal("Kamis","13:00-15:00","Geografi"));
042        list_jadwal.add(new Jadwal("Jumat","08:00-10:00","Pemrograman Java"));
043        list_jadwal.add(new Jadwal("Jumat","10:00-12:00","Pemrograman Android"));
044        list_jadwal.add(new Jadwal("Jumat","12:00-13:00","Istirahat"));
045        list_jadwal.add(new Jadwal("Jumat","13:00-15:00","Logika Algoritma"));
046    }
047 
048    @Override
049    public boolean onCreateOptionsMenu(Menu menu) {
050        // Inflate the menu; this adds items to the action bar if it is present.
051        getMenuInflater().inflate(R.menu.main, menu);
052        return super.onCreateOptionsMenu(menu);
053    }
054 
055     /**
056     * On selecting action bar
057     * */
058    @Override
059    public boolean onOptionsItemSelected(MenuItem item) {
060        // Take appropriate action for each action item click
061        switch (item.getItemId()) {
062        case R.id.action_senin:
063            showJadwal("Senin");
064            return true;
065        case R.id.action_selasa:
066            // location found
067            showJadwal("Selasa");
068            return true;
069        case R.id.action_rabu:
070            showJadwal("Rabu");
071            return true;
072        case R.id.action_kamis:
073            showJadwal("Kamis");
074            return true;
075        case R.id.action_jumat:
076            showJadwal("Jumat");
077            return true;
078        default:
079            return super.onOptionsItemSelected(item);
080        }
081    }
082 
083    public void showJadwal(String hari) {
084 
085        tvhari.setText("Hari " + hari);
086        ArrayList<Jadwal> jadwal_terpilih = new ArrayList<Jadwal>();
087            for (int i = 0; i < list_jadwal.size(); i++) {
088                Jadwal jadwal = list_jadwal.get(i);
089                if (jadwal.hari.equals(hari)) {
090                    jadwal_terpilih.add(jadwal);
091                }
092            }
093 
094        AdapterJadwal adapterjadwal = new AdapterJadwal(MainActivity.this, 0,
095                jadwal_terpilih);
096        listviewjadwal.setAdapter(adapterjadwal);
097 
098    }
099 
100}

5. Saatnya Run Projectnya, klik pojok kanan untuk memunculkan menu

Pilih Senin


Untuk saat ini pada saat aplikasi dijalankan tampilannya kosong. harusnya kita bisa langsung menampilkan jadwal hari ini. Nah silahkan mencoba menyelesiakannya
Semoga Bermanfaat


0 Komentar untuk "Belajar membuat Android Action Bar Studi Kasus Aplikasi Jadwal Pelajaran"

 
-->