Download - 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"/>