Anda di halaman 1dari 19

Belajar Android Membuat Spinner

Navigation pada Action Bar


Jumpa lagi dengan agus haryanto, kali ini kita masih membahas tentan salah action bar yaitu Spinner
Navigation

Masih melanjutkan project sebelumnya, sekarang kita akan mencoba bentuk navigasi menu yang lain
yang sering disebut dengan nama Spinner Navigation. Sesuai dengan namanya Spinner Navigation
adalah menu navigasi yanga di action bar yang bentiknya sepert spinner. sekarang mari kita ikuti langkah
pembuatannya

1. Buka project Jadwal Pelajaran yang ada pada tutorial sebelumnya

2. Buat layout baru dengan nama row_spinnermenu_item.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="fill_parent"

05 android:padding="5dp" >

06

07 <ImageView android:id="@+id/imgIcon"

08 android:layout_width="25dp"

09 android:layout_height="25dp"

10 android:layout_alignParentLeft="true"

11 android:layout_alignParentTop="true"
12 android:src="@drawable/ic_launcher"

13 android:layout_marginRight="5dp"

14 />

15

16 <TextView android:id="@+id/txtTitle"

17 android:layout_width="wrap_content"

18 android:layout_height="wrap_content"

19 android:layout_centerVertical="true"

20 android:layout_toRightOf="@id/imgIcon"/>

21

22 </RelativeLayout>

3. Buat class baru dengan nama SpinnerNavItem.java class ini berfungsi sebagai model dari isi
spinner.

01 package com.agusharyanto.jadwalpelajaran;

02

03 public class SpinnerNavItem {

04

05 private String title;


06 private int icon;

07

08 public SpinnerNavItem(String title, int icon){

09 this.title = title;

10 this.icon = icon;

11 }

12

13 public String getTitle(){

14 return this.title;

15 }

16

17 public int getIcon(){

18 return this.icon;

19 }

20 }

4. Buat class baru dengan nama SpinnerMenuAdapter.java, karena isi dari Spinnernya ada icon
gambar dan text maka kita harus buta adapternya sendiri.

01 package com.agusharyanto.jadwalpelajaran;
02

03 import java.util.ArrayList;

04

05 import android.app.Activity;

06 import android.content.Context;

07 import android.view.LayoutInflater;

08 import android.view.View;

09 import android.view.ViewGroup;

10 import android.widget.BaseAdapter;

11 import android.widget.ImageView;

12 import android.widget.TextView;

13

14 public class SpinnerMenuAdapter extends BaseAdapter {

15

16 private ImageView imgIcon;

17 private TextView txtTitle;

18 private ArrayList<SpinnerNavItem> spinnerNavItem;


19 private Context context;

20

21 public SpinnerMenuAdapter(Context context,

22 ArrayList<SpinnerNavItem> spinnerNavItem) {

23 this.spinnerNavItem = spinnerNavItem;

24 this.context = context;

25 }

26

27 @Override

28 public int getCount() {

29 return spinnerNavItem.size();

30 }

31

32 @Override

33 public Object getItem(int index) {

34 return spinnerNavItem.get(index);

35 }
36

37 @Override

38 public long getItemId(int position) {

39 return position;

40 }

41

42 @Override

43 public View getView(int position, View convertView, ViewGroup parent) {

44 if (convertView == null) {

45 LayoutInflater mInflater = (LayoutInflater)

4 context.getSystemService(Activity.LAYOUT_INFLATER_SERV
6 ICE);

convertView =
47
mInflater.inflate(R.layout.row_spinnermenu_item, null);

48 }

49

50 imgIcon = (ImageView) convertView.findViewById(R.id.imgIcon);

51 txtTitle = (TextView) convertView.findViewById(R.id.txtTitle);

52
53 imgIcon.setImageResource(spinnerNavItem.get(position).getIcon());

54 imgIcon.setVisibility(View.GONE);

55 txtTitle.setText(spinnerNavItem.get(position).getTitle());

56 return convertView;

57 }

58

59 @Override

60 public View getDropDownView(int position, View convertView, ViewGroup


parent) {

61 if (convertView == null) {

62 LayoutInflater mInflater = (LayoutInflater)

6 context.getSystemService(Activity.LAYOUT_INFLATER_SERV
3 ICE);

convertView =
64
mInflater.inflate(R.layout.row_spinnermenu_item, null);

65 }

66

67 imgIcon = (ImageView) convertView.findViewById(R.id.imgIcon);

68 txtTitle = (TextView) convertView.findViewById(R.id.txtTitle);


69

70 imgIcon.setImageResource(spinnerNavItem.get(position).getIcon());

71 txtTitle.setText(spinnerNavItem.get(position).getTitle());

72 return convertView;

73 }

74

75 }

5. Buat class baru dengan nama SpinnerMenuNavigationActivity.java disinilah inti koding pada
Spinner Navigation

001 package com.agusharyanto.jadwalpelajaran;

002

003 import java.util.ArrayList;

004

005 import android.app.ActionBar;

006 import android.app.Activity;

007 import android.os.Bundle;

008 import android.view.Menu;

009 import android.view.MenuItem;


010 import android.widget.ListView;

011 import android.widget.TextView;

012 import android.widget.Toast;

01
3

01 public class SpinnerNavigationActivity extends Activity implements ActionBar


4 .OnNavigationListener{

015

016 // action bar

017 private ActionBar actionBar;

018

019 // Title navigation Spinner data

020 private ArrayList<SpinnerNavItem> navSpinner;

021

022 // Navigation adapter

023 private SpinnerMenuAdapter adapter;

024

025 ArrayList <Jadwal> list_jadwal = new ArrayList<Jadwal>();


026 TextView tvhari;

027 ListView listviewjadwal ;

028 @Override

029 protected void onCreate(Bundle savedInstanceState) {

030 super.onCreate(savedInstanceState);

031 setContentView(R.layout.activity_main);

032 tvhari = (TextView) findViewById(R.id.textViewHari);

033 listviewjadwal = (ListView) findViewById(R.id.listViewJadwal);

034 initData();

035

036 actionBar = getActionBar();

037

038 // Hide the action bar title

039 actionBar.setDisplayShowTitleEnabled(false);

040

041 // Enabling Spinner dropdown navigation

042 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
043

044 // Spinner title navigation data

045 navSpinner = new ArrayList<SpinnerNavItem>();

046 navSpinner.add(new SpinnerNavItem("Senin",


R.drawable.ic_launcher));

047 navSpinner.add(new SpinnerNavItem("Selasa",


R.drawable.ic_launcher));

048 navSpinner.add(new SpinnerNavItem("Rabu",


R.drawable.ic_launcher));

049 navSpinner.add(new SpinnerNavItem("Kamis",


R.drawable.ic_launcher));

050 navSpinner.add(new SpinnerNavItem("Jumat",


R.drawable.ic_launcher));

051

052 // title drop down adapter

053 adapter = new SpinnerMenuAdapter(getApplicationContext(),


navSpinner);

054

055 // assigning the spinner navigation

056 actionBar.setListNavigationCallbacks(adapter, this);

057 }
058

059 public void initData() {

060 list_jadwal.add(new Jadwal("Senin","08:00-10:00","Matematika"));

061 list_jadwal.add(new Jadwal("Senin","10:00-12:00","Agama Islam"));

062 list_jadwal.add(new Jadwal("Senin","12:00-13:00","Istirahat"));

063 list_jadwal.add(new Jadwal("Senin","13:00-15:00","Fisika"));

064 list_jadwal.add(new Jadwal("Selasa","08:00-10:00","Bahasa


Indonesia"));

065 list_jadwal.add(new Jadwal("Selasa","10:00-12:00","Kimia"));

066 list_jadwal.add(new Jadwal("Selasa","12:00-13:00","Istirahat"));

067 list_jadwal.add(new Jadwal("Selasa","13:00-15:00","Biologi"));

068 list_jadwal.add(new Jadwal("Rabu","08:00-10:00","Matematika"));

069 list_jadwal.add(new Jadwal("Rabu","10:00-12:00","Seni Rupa"));

070 list_jadwal.add(new Jadwal("Rabu","12:00-13:00","Istirahat"));

071 list_jadwal.add(new Jadwal("Rabu","13:00-15:00","Bahasa


Inggris"));

072 list_jadwal.add(new Jadwal("Kamis","08:00-10:00","Fisika"));

073 list_jadwal.add(new Jadwal("Kamis","10:00-12:00","Penjaskes"));


074 list_jadwal.add(new Jadwal("Kamis","12:00-13:00","Istirahat"));

075 list_jadwal.add(new Jadwal("Kamis","13:00-15:00","Geografi"));

076 list_jadwal.add(new Jadwal("Jumat","08:00-10:00","Pemrograman


Java"));

077 list_jadwal.add(new Jadwal("Jumat","10:00-12:00","Pemrograman


Android"));

078 list_jadwal.add(new Jadwal("Jumat","12:00-13:00","Istirahat"));

079 list_jadwal.add(new Jadwal("Jumat","13:00-15:00","Logika


Algoritma"));

080 }

081

082 @Override

083 public boolean onCreateOptionsMenu(Menu menu) {

084 return true;

085 }

086

087 /**

088 * On selecting action bar icons

089 * */
090 @Override

091 public boolean onOptionsItemSelected(MenuItem item) {

092

093 return true;

094 }

095

096 /**

097 * Actionbar navigation item select listener

098 * */

099 @Override

100 public boolean onNavigationItemSelected(int itemPosition, long itemId)


{

10
// Action to be taken after selecting a spinner item
1

10 Toast.makeText(getBaseContext(), "menu:"+navSpinner.get(itemPositi
2 on).getTitle(), Toast.LENGTH_SHORT).show();

103 showJadwal(navSpinner.get(itemPosition).getTitle());

104 return false;

105 }
106

107 public void showJadwal(String hari) {

108

109 tvhari.setText("Hari " + hari);

110 ArrayList<Jadwal> jadwal_terpilih = new ArrayList<Jadwal>();

111 for (int i = 0; i < list_jadwal.size(); i++) {

112 Jadwal jadwal = list_jadwal.get(i);

113 if (jadwal.hari.equals(hari)) {

114 jadwal_terpilih.add(jadwal);

115 }

116 }

117

AdapterJadwal adapterjadwal
118
= new AdapterJadwal(SpinnerNavigationActivity.this, 0,

119 jadwal_terpilih);

120 listviewjadwal.setAdapter(adapterjadwal);

121

122 }
123 }

6. Rubah AndroidManifest.xml untuk Activity yang pertama kali di eksekusi


dari MainActivity ke SpinnerNavigationActivity.

01 <?xml version="1.0" encoding="utf-8"?>

02 <manifest xmlns:android="http://schemas.android.com/apk/res/android"

03 package="com.agusharyanto.jadwalpelajaran"

04 android:versionCode="1"

05 android:versionName="1.0" >

06

07 <uses-sdk

08 android:minSdkVersion="11"

09 android:targetSdkVersion="18" />

10

11 <application

12 android:allowBackup="true"

13 android:icon="@drawable/ic_launcher"

14 android:label="@string/app_name"

15 android:theme="@style/AppTheme" >
16 <activity

1 android:name="<strong>com.agusharyanto.jadwalpelajaran.SpinnerN
7 avigationActivity</strong>"

18 android:label="@string/app_name" >

19 <intent-filter>

20 <action android:name="android.intent.action.MAIN" />

2
1

2 <category android:name="android.intent.category.LAUNCHER" /
2 >

23 </intent-filter>

24 </activity>

25 </application>

26

27 </manifest>

7. Sekarang mari kita Run projectnya.

Klik Spinner Navigation di pojok kiri atas


Pilih Hari Jumat
Bagaimana, mudahkan buatnya, Action Bar di android memang mantap. Tambah lagi senjata kita untuk
navigasi menu.

Di bulan Februari ini untuk para developer Android ada kabar gembira lho. Kabarnya adalah para
developer android indonesia, sudah bisa jualan aplikasi di Play Storenya Google. Artinya tambah lagi satu
pintu untuk menambah penghasilan. Untuk itu buatlah aplikasi yang bagus lalu jual bayangkan misal
harga aplikasinya $1 ada yang download 1000 orang berart dapat $1000 kalau 10000 orang
berarti $10000sudah bisa untuk pergi haji, yang belum nikah bisa jadi modal untuk melamar dan
menilkahi gadis pilihannya. Satu lagi android itukan buatn aplikasinya pakai java jadi berusahalah untuk
belajar dan memahami bahasa java. semakin bagus pemahamam kita tentang java semakin bertambah
pula kemampuan kita untuk membuat aplikasi android yang bagus.

Semoga Bermanfaat

Anda mungkin juga menyukai