Android Task Report

download Android Task Report

of 24

Transcript of Android Task Report

  • 8/10/2019 Android Task Report

    1/24

    LaporanTugasMata kuliah TMD12 - Pemrograman Aplikasi

    Perangkat Bergerak

    1LAPORAN TUGAS TMD12

    D4 TKJMD ITB Batch 8

    49013053

    Elan Qisthi Aji Wahyudi

  • 8/10/2019 Android Task Report

    2/24

    Aplikasi Menu Tab

    Program menu tab adalah program yang dijalankan pada aplikasi Android untuk

    menampilkan menu dengan tampilan tab. Setiap tab adalah sebuah fragment

    yang masing-masing memiliki tampilan yang berbeda. Sedangkan tab

    menggunakan layout ViewPager. Aplikasi ini dijalankan dengan menggunakan

    platform Android Jelly Bean 4.2 pada AVD Emulator

    Berikut ini adalah source code dari aplikasi menu tab

    2LAPORAN TUGAS TMD12

    Tampilan Aplikasi Menu Tab

  • 8/10/2019 Android Task Report

    3/24

    MainActivity.javapackageme.qisthi.androidmenutab;

    importme.qisthi.androidmenutab.adapter.TabsPagerAdapter;

    importandroid.app.ActionBar;

    importandroid.app.ActionBar.Tab;

    importandroid.app.ActionBar.TabListener;

    importandroid.app.FragmentTransaction;

    importandroid.os.Bundle;

    importandroid.support.v4.app.FragmentActivity;

    importandroid.support.v4.view.ViewPager;

    importandroid.view.Menu;

    publicclassMainActivity extendsFragmentActivity implementsTabListener {

    privateViewPager viewPager;

    privateTabsPagerAdapter tAdapter;

    privateActionBar actionBar;

    //tab titles

    privateString[] tabs= {"Artist","Albums","Songs"};

    @Override

    protectedvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    //actionbar init

    viewPager= (ViewPager)findViewById(R.id.pager);

    actionBar= getActionBar();

    tAdapter= newTabsPagerAdapter(getSupportFragmentManager());

    viewPager.setAdapter(tAdapter);

    actionBar.setHomeButtonEnabled(false);

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    //adding tabs

    for(String tabName : tabs)

    {

    actionBar.addTab(actionBar.newTab().setText(tabName).setTabListener(this));

    }

    // On swiping the view pager make the tab selected

    viewPager.setOnPageChangeListener(newViewPager.OnPageChangeListener()

    {

    @Override

    publicvoidonPageSelected(intposition) {

    actionBar.setSelectedNavigationItem(position);

    }

    3LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    4/24

    @Override

    publicvoidonPageScrolled(intarg0, floatarg1, intarg2) {

    // TODOAuto-generated method stub

    }

    @Override

    publicvoidonPageScrollStateChanged(intarg0) {

    // TODOAuto-generated method stub

    }

    });

    }

    @Override

    publicbooleanonCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is

    present.

    getMenuInflater().inflate(R.menu.main, menu);

    returntrue;

    }

    @Override

    publicvoidonTabReselected(Tab tab, FragmentTransaction arg1) {

    }

    @Override

    publicvoidonTabSelected(Tab tab, FragmentTransaction arg1) {

    // TODOAuto-generated method stub

    viewPager.setCurrentItem(tab.getPosition());

    }

    @Override

    publicvoidonTabUnselected(Tab arg0, FragmentTransaction arg1) {

    // TODOAuto-generated method stub

    }

    }

    TabsPagerAdapter.javapackageme.qisthi.androidmenutab.adapter;

    importme.qisthi.androidmenutab.AlbumFragment;

    importme.qisthi.androidmenutab.ArtistFragment;

    importme.qisthi.androidmenutab.SongFragment;

    importandroid.support.v4.app.Fragment;

    importandroid.support.v4.app.FragmentManager;

    importandroid.support.v4.app.FragmentPagerAdapter;

    publicclassTabsPagerAdapter extendsFragmentPagerAdapter{

    4LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    5/24

    publicTabsPagerAdapter(FragmentManager fm) {

    super(fm);

    // TODOAuto-generated constructor stub

    }

    @Override

    publicFragment getItem(intindex) {

    // TODOAuto-generated method stub

    switch(index) {

    case0:

    returnnewArtistFragment();

    case1:

    returnnewAlbumFragment();

    case2:

    returnnewSongFragment();

    }

    returnnull;

    }

    @Override

    publicintgetCount() {

    // TODOAuto-generated method stub

    return3;

    }

    }

    AlbumFragment.java

    package me.qisthi.androidmenutab;

    import android.os.Bundle;

    import android.support.v4.app.Fragment;

    import android.view.LayoutInflater;

    import android.view.View;

    import android.view.ViewGroup;

    public class AlbumFragment extends Fragment {

    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup

    container,

    Bundle savedInstanceState) {

    // TODO Auto-generated method stub

    View rootView =

    inflater.inflate(R.layout.activity_album_fragment, container,false);

    5LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    6/24

    return rootView;

    }}

    ArtistFragment.java

    packageme.qisthi.androidmenutab;

    importandroid.os.Bundle;

    importandroid.support.v4.app.Fragment;

    importandroid.view.LayoutInflater;

    importandroid.view.View;

    importandroid.view.ViewGroup;

    publicclassArtistFragment extendsFragment {

    @Override

    publicView onCreateView(LayoutInflater inflater, ViewGroup

    container,

    Bundle savedInstanceState) {

    // TODOAuto-generated method stub

    View rootView =

    inflater.inflate(R.layout.activity_artist, container,false);

    returnrootView;

    }

    }

    SongFragment.java

    packageme.qisthi.androidmenutab;

    importandroid.support.v4.app.Fragment;

    importandroid.os.Bundle;

    importandroid.view.LayoutInflater;

    importandroid.view.View;

    importandroid.view.ViewGroup;

    publicclassSongFragment extendsFragment {

    @Override

    publicView onCreateView(LayoutInflater inflater, ViewGroup

    container,

    Bundle savedInstanceState) {

    // TODOAuto-generated method stub

    View rootView = inflater.inflate(R.layout.activity_song,

    container,false);

    returnrootView;}}

    6LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    7/24

    activity_main.xml

    activity_album_fragment.xml & activity_artist.xml &

    activity_song.xml

    Aplikasi Grid View

    GridView adalah tampilan pada Android yang merupakan turunan dari clss

    ViewGroup yang menampilkan elemen-elemen dalam bentuk grid atau petak.

    Elemen petak tersebut secara otomatis ditambahkan pada GridView dengan

    menggunakan ListAdapter

    Aplikasi ini dijalankan pada platform Android Jelly Bean 4.2 dengan

    menggunakan emulator

    Berikut ini adalah tampilan dari aplikasi Grid View

    7LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    8/24

    Tampilan Aplikasi Gridview

    Gambar sample dari tampilan program diatas bisa diambil dari link berikut

    http://developer.android.com/shareables/sample_images.zip. Berikut ini adalah

    source code dari aplikasi GridView

    MainActivity.java

    packageme.qisthi.androidgridview;

    importandroid.os.Bundle;

    importandroid.app.Activity;

    importandroid.view.Menu;

    importandroid.widget.AdapterView;

    importandroid.widget.GridView;

    importandroid.widget.Toast;

    importandroid.view.View;

    8LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    9/24

    importandroid.widget.AdapterView.OnItemClickListener;;

    publicclassMainActivity extendsActivity {

    @Override

    protectedvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    GridView gridview =

    (GridView)findViewById(R.id.gridview);

    gridview.setAdapter(newImageAdapter(this));

    gridview.setOnItemClickListener(newOnItemClickListener()

    {

    publicvoidonItemClick(AdapterView parent, View v,

    intposition, longid) {

    Toast.makeText(MainActivity.this, ""+ position,

    Toast.LENGTH_SHORT).show();

    }

    });

    }

    @Override

    publicbooleanonCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if

    it is present.

    getMenuInflater().inflate(R.menu.main, menu);

    returntrue;

    }

    }

    ImageAdapter.java

    packageme.qisthi.androidgridview;

    importandroid.content.Context;

    importandroid.view.View;

    importandroid.view.ViewGroup;

    importandroid.widget.BaseAdapter;

    importandroid.widget.GridView;

    importandroid.widget.ImageView;

    publicclassImageAdapter extendsBaseAdapter {

    9LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    10/24

    privateContext mContext;

    //reference to image

    privateint[] imageIds= {

    R.drawable.sample_0, R.drawable.sample_1,

    R.drawable.sample_2, R.drawable.sample_4,

    R.drawable.sample_3, R.drawable.sample_6,

    R.drawable.sample_5, R.drawable.sample_7

    };

    publicImageAdapter(Context c){

    mContext= c;

    }

    //Create new ImageView for each item

    @Override

    publicView getView(intpos, View convertView, ViewGroup

    parent) {

    // TODOAuto-generated method stub

    ImageView imageView;

    if(convertView==null)

    {

    imageView = newImageView(mContext);

    imageView.setLayoutParams(new

    GridView.LayoutParams(85,85));

    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

    imageView.setPadding(8, 8, 8, 8);

    }else{

    imageView = (ImageView)convertView;

    }

    imageView.setImageResource(imageIds[pos]);

    returnimageView;

    }

    @Override

    publicintgetCount() {

    // TODOAuto-generated method stub

    returnimageIds.length;

    }

    @Override

    publicObject getItem(intarg0) {

    // TODOAuto-generated method stub

    returnnull;

    }

    10LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    11/24

    @Override

    publiclonggetItemId(intarg0) {

    // TODOAuto-generated method stub

    return0;

    }

    }

    activity_main.xml

    Aplikasi ListView

    Aplikasi ListView adalah aplikasi yang memperlihatkan tampilan daftar elemen

    tertentu. Elemen dari list dimasukkan secara otomatis dengan menggunakan

    adapter.

    Aplikasi ini dijalankan pada platform Android Jelly Bean 4.2 dengan

    menggunakan emulator

    Berikut ini adalah tampilan dari aplikasi List View

    11LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    12/24

    Tampilan aplikasi listview

    Ketika salah satu item dipilih oleh user, maka aplikasi ini akan menampilkan

    keterangan nama nama dari item yang user pilih.

    Berikut adalah source code dari aplikasi ini

    MainActivity.java

    packageme.qisthi.androidlistview;

    importandroid.os.Bundle;

    importandroid.app.ListActivity;

    importandroid.view.Menu;

    importandroid.view.View;

    importandroid.widget.ArrayAdapter;

    importandroid.widget.ListView;

    importandroid.widget.TextView;

    importandroid.widget.Toast;

    importandroid.widget.AdapterView.OnItemClickListener;

    importandroid.widget.AdapterView;

    12LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    13/24

    publicclassMainActivity extendsListActivity {

    staticfinalString[] FRUITS= newString[] { "Apple",

    "Avocado", "Banana",

    "Blueberry", "Coconut", "Durian", "Guava", "Kiwifruit",

    "Jackfruit", "Mango", "Olive", "Pear", "Sugar-apple"};

    @Override

    protectedvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    // setContentView(R.layout.activity_main);

    ArrayAdapter adapter = new

    ArrayAdapter(this, R.layout.listitem,FRUITS);

    setListAdapter(adapter);

    ListView listView = getListView();

    listView.setTextFilterEnabled(true);

    listView.setOnItemClickListener(newOnItemClickListener()

    {

    publicvoidonItemClick(AdapterView parent, View

    view,

    intposition, longid) {

    // When clicked, show a toast with the TextViewtext

    Toast.makeText(getApplicationContext(),

    ((TextView) view).getText(),

    Toast.LENGTH_SHORT).show();

    }

    });

    }

    @Override

    publicbooleanonCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if

    it is present.

    getMenuInflater().inflate(R.menu.main, menu);

    returntrue;

    }

    }

    13LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    14/24

    listitem.xml

    activity_main.xml

    Aplikasi Spinner

    Spinner merupakan suatu jenis interaksi yang menyajikan pilihan - pilihan

    dengan tampilan dropdown. Spinner sangat berguna apabila aplikasi

    memberikan banyak opsi kepada user, namun dengan jumlah yang terbatas.

    Berikut ini adalah tampilan dari aplikasi spinner

    14LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    15/24

    Tampilan dari aplikasi Spinner

    Pada aplikasi ini terdapat dua jenis spinner yang dibedakan dari cara

    pengambilan datanya. Spinner1 yang berisi nama-nama negara datanya diambil

    dari string.xml sehingga datanya statis. Sedangkan untuk spinner2 datanya

    secara dinamis diambil dengan menggunakan ArrayAdaptor.

    Berikut ini adalah source code dari aplikasi ini.

    MainActivity.java

    packageme.qisthi.androidspinner;

    importjava.util.ArrayList;

    importandroid.app.Activity;

    importandroid.os.Bundle;

    importandroid.view.View;

    importandroid.view.View.OnClickListener;

    15LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    16/24

  • 8/10/2019 Android Task Report

    17/24

    btnSubmit.setOnClickListener(newOnClickListener()

    {

    @Override

    publicvoidonClick(View v) {

    Toast.makeText(MainActivity.this,

    "OnClickListener : "+

    "\nSpinner 1 : "+

    String.valueOf(spinner1.getSelectedItem()) +

    "\nSpinner 2 : "+

    String.valueOf(spinner2.getSelectedItem()),

    Toast.LENGTH_SHORT).show();

    }

    });

    }

    }

    strings.xml

    AndroidSpinner

    Settings

    Hello world!

    Choose a country

    Malaysia

    United States

    Indonesia

    France

    Italy

    Singapore

    New Zealand

    India

    activity_main.xml

    17LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    18/24

    18LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    19/24

    Aplikasi Time & Date Picker

    Android menyediakan tampilan dialog kepada user untuk menentukan waktu

    ataupun tanggal yang disebut Picker. masing - masing picker memiliki

    perbedaan pada parameter yang dimintanya. untuk waktu akan mengambil

    parameter berupa jam, menit dan AM/PM sedangkan untuk tanggal mengambil

    paramter berupa bulan, hari, tahun. Penggunaan picker sangat berguna untuk

    menghindari kesalahan penanggalan karena sudah terformat dengan benar.

    Berikut ini adalah tampilan dari aplikasi time & date picker

    Tampilan dialog untuk memilih waktu

    19LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    20/24

    Tampilan dialog untuk memilih tanggal

    Berikut ini adalah source code dari aplikasi date & time picker

    MainActivity.java

    package me.qisthi.androidpicker;

    import android.os.Bundle;

    import android.app.Activity;

    import android.app.DialogFragment;

    import android.view.Menu;

    import android.view.View;

    import android.view.View.OnClickListener;

    import android.widget.Button;

    public class MainActivity extends Activity {

    20LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    21/24

    private Button btnTime, btnDate;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    btnTime = (Button)findViewById(R.id.button1);

    btnDate = (Button)findViewById(R.id.button2);

    btnTime.setOnClickListener(new OnClickListener() {

    @Override

    public void onClick(View v) {

    DialogFragment timeFragment = new

    TimeFragment();

    timeFragment.show(getFragmentManager(), "Time

    Picker");

    }

    });

    btnDate.setOnClickListener(new OnClickListener() {

    @Override

    public void onClick(View v) {

    DialogFragment dateFragment = new

    DateFragment();

    dateFragment.show(getFragmentManager(), "Date

    Picker");

    }

    });

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if

    it is present.

    getMenuInflater().inflate(R.menu.main, menu);

    return true;

    }

    }

    21LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    22/24

    DateFragment.java

    packageme.qisthi.androidpicker;

    importjava.util.Calendar;

    importandroid.app.DatePickerDialog;

    importandroid.app.Dialog;

    importandroid.app.DialogFragment;

    importandroid.os.Bundle;

    importandroid.widget.DatePicker;

    publicclassDateFragment extendsDialogFragment implements

    DatePickerDialog.OnDateSetListener{

    @Override

    publicDialog onCreateDialog(Bundle savedInstanceState) {

    // TODOAuto-generated method stub

    finalCalendar c = Calendar.getInstance();

    intyear = c.get(Calendar.YEAR);

    intmonth= c.get(Calendar.MONTH);

    intday = c.get(Calendar.DAY_OF_MONTH);

    //create Date Picker Instance

    DatePickerDialog datePicker = new

    DatePickerDialog(getActivity(), this, year, month, day);

    returndatePicker;

    }

    @Override

    publicvoidonDateSet(DatePicker view, intyear, int

    monthOfYear,

    intdayOfMonth) {

    // TODOAuto-generated method stub

    }

    }

    TimeFragment.java

    packageme.qisthi.androidpicker;

    importjava.util.Calendar;

    22LAPORAN TUGAS TMD12

  • 8/10/2019 Android Task Report

    23/24

    importandroid.app.Dialog;

    importandroid.app.DialogFragment;

    importandroid.os.Bundle;

    importandroid.text.format.DateFormat;

    importandroid.widget.TimePicker;

    importandroid.app.TimePickerDialog;

    publicclassTimeFragment extendsDialogFragment implements

    TimePickerDialog.OnTimeSetListener {

    @Override

    publicDialog onCreateDialog(Bundle savedInstanceState) {

    // TODOAuto-generated method stub

    finalCalendar c = Calendar.getInstance();

    inthour = c.get(Calendar.HOUR_OF_DAY);

    intminute = c.get(Calendar.MINUTE);

    TimePickerDialog timePicker = new

    TimePickerDialog(getActivity(), this, hour, minute,

    DateFormat.is24HourFormat(getActivity()));

    returntimePicker;

    }

    @Override

    publicvoidonTimeSet(TimePicker view, inthour, intminute) {

    // TODOAuto-generated method stub

    }

    }

    activity_main.xml

  • 8/10/2019 Android Task Report

    24/24

    android:id="@+id/button1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_marginLeft="24dp"

    android:layout_marginTop="122dp"

    android:text="Pick Time"/>