Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Komponen activity Dosen: Maimun, S.T., M.T.. 1. Activity Kegiatan apa yang akan ditampilkan dan dilakukan user pada sebuah window Berisi lifecycle / daur.

Presentasi serupa


Presentasi berjudul: "Komponen activity Dosen: Maimun, S.T., M.T.. 1. Activity Kegiatan apa yang akan ditampilkan dan dilakukan user pada sebuah window Berisi lifecycle / daur."— Transcript presentasi:

1 Komponen activity Dosen: Maimun, S.T., M.T.

2 1. Activity Kegiatan apa yang akan ditampilkan dan dilakukan user pada sebuah window Berisi lifecycle / daur hidup saling berhubungan dari sebuah activity ke activity lainnya Bersifar Last In First Out (LIFO), activity terakhir masuk ke stack maka akan keluar lebih dahulu Layout activity berada pada file activity_main.xml Seluruh activity terlihat di AndroidManifest.xml https://developer.android.com/guide/components/activities /activity-lifecycle

3 Mekanisme LIFO 1. Aktivitas diluncurkan 2. Aktivitas dibentuk  onCreate() 4. Aktivitas dimunculkan  onResume() 5. Aktivitas 1 dijalankan  masuk ke stack activity 3. Aktivitas dimulai  onStart() 6. Aktivitas 1 ditunda  onPause() bila tidak digunakan 8. Aktivitas 2 dimulai  onRestart() 7. Aktivitas 1 dihentikan  onStop() bila beralih ke aktivitas lain 9. Aktivitas 2 running 10. Aktivitas 2 masuk ke stack (Last In) 11. Aktivitas 2 selesai  onDestroy() 12. Aktivitas 2 keluar (First Out) 13. Bila aktivitas 1 selesai  shutdown Atau bila aktivitas 1 habis memory  Killed Activity launched Activity Running App process killed Activity shut down onCreate() onStart() onResume( ) onDestroy onStop() onPause() onRestart() Activity1 Activity 2

4 Saving Activity State 1. Bila aktivitas mengalami pause/stop maka informasi tersimpan di Bundle  onSaveInstanceState() 2. Aktivitas tak tak terlihat 3. Saat activity dimunculkan secara normal  onRestart() 5.Kemudian Activity dipanggil kembali  onRestoreInstanceState() atau Activity dibentuk kembali bila tidak ada di Bundle  onCreate() 4.Bila aplikasi lain memerlukan memory maka secara prioritas activity  onDestroy() contoh: pergantian layar, penampilan keyboard, 1 2 3 4 5

5 Aplikasi hitung volume balok 1. Buat layout aplikasi  activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="com.funtasiaapp.praktek1_namaanda.MainActivity">  LinearLayout=parent semua komponen view  namespace menggunakan attribute dan tag dari android.com  penanda format XML Mendefinisikan dimensi layar berdasarkan dimens.xml <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/panjang" android:layout_marginBottom="@dimen/activity_vertical_margin"/>  TextView =menampilkan text ke layar  match_parent = sesuai uk layar  wrap_content = sesuai uk konten  android:text = isi text  android:layout_marginBottom= uk berdasarkan density pixel (dp)

6 <EditText android:id="@+id/edt_length" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" android:lines="1" android:layout_marginBottom="@dimen/activity_vertical_margin"/>  EditText = input teks  android:id = memberikan identitas utk operasi logic di MainActivity.java  inputType = tipe teks  bil decimal  android:lines = jumlah baris <Button android:id="@+id/btn_calculate" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/hitung" android:layout_marginBottom="@dimen/activity_vertical_margin"/> <TextView android:id="@+id/tv_result" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Hasil" android:gravity="center" android:textSize="24sp" android:textStyle="bold" android:layout_marginBottom="@dimen/activity_vertical_margin"/>  Button = memberikan aksi klik  android:gravity = menempatkan text di tengah  android:textSize = uk teks  android:textStyle= style teks

7 2. Buat logika program  MainActivity.java Belajar java di: https://www.learnjavaonline.org/ https://www.codepolitan.com/ package com.funtasiaapp.praktek1_namaanda; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private EditText edtWidth, edtHeight, edtLength; private Button btnCalculate; private TextView tvResult;  Import attribute dan tag android  public class = Mendefinisikan kelas Java activity bernama AppCompatActivity  Implement View.OnClickListener = membaca Klik dan merubah warna saat dipilih  Private = deklarasi komponen didalamnya untuk dimanipulas pada bagian kelas

8 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edtWidth = (EditText)findViewById(R.id.edt_width); edtLength = (EditText)findViewById(R.id.edt_length); edtHeight = (EditText)findViewById(R.id.edt_height); btnCalculate = (Button) findViewById(R.id.btn_calculate); tvResult=(TextView) findViewById(R.id.tv_result); btnCalculate.setOnClickListener(this); if(savedInstanceState !=null){ String hasil=savedInstanceState.getString(STATE_HASIL); tvResult.setText(hasil); } Metode onCreate  @Override = metode utama  Deklarasi metode onCreate = inisialisasi komponen sesuai layout bersifat akses terbatas (protected)  super.onCreate = memanggil metode onCreate() berdasarkan instance yang tersimpan di memori  setContentView() = menampilkan layout activity_main.xml  edtWidth, edtLength, edtHeight, btnCalculate dan tvResult mendefinisikan komponen EditText, Button, TextView dengan id layout  btnCalculate.setOnClickListener() = objek button ini (this) terpasang onClickListener.  savedInstanceState !=null  bila informasi di Bundle tidak sama (!) kosong  String hasil = nilai diambil di bundle dengan name STATE_HASIL  tvResult.setText()=menampilkan hasil

9 @Override public void onClick(View v) { if (v.getId() == R.id.btn_calculate) { String length = edtLength.getText().toString().trim(); String width = edtWidth.getText().toString().trim(); String height = edtHeight.getText().toString().trim(); boolean isEmptyFields = false; if (TextUtils.isEmpty(length)) { isEmptyFields = true; edtLength.setError("Field ini tidak boleh kosong"); } if (TextUtils.isEmpty(width)) { isEmptyFields = true; edtWidth.setError("Field ini tidak boleh kosong"); } if (TextUtils.isEmpty(height)) { isEmptyFields = true; edtHeight.setError("Field ini tidak boleh kosong"); } if (!isEmptyFields) { double l = Double.parseDouble(length); double w = Double.parseDouble(width); double h = Double.parseDouble(height); double volume = l*w*h; tvResult.setText(String.valueOf(volume)); }} } Metode onClick  Deklarasi metode onClick() = inisialisasi komponen string saat klik.  String = Deklarasi length, width, height dalam karakter  getText() = mengambil input Text  toString() = merubah ke String  trim() = memotong space Text  booleanisEmptyFields = field tidak boleh kosong  TextUtils.IsEmpty() = memeriksa value apakah kosong  setError = menampilkan pesan error  !isEmptyFields = ! Artinya tidak sama dengan  Double.parseDouble = tipe data angka dalam 64bit termasuk koma  tvResult.setText = mengatur tampilan teks  String.valueOf(volume)) = berupa String bernilai volume

10 private static final String STATE_HASIL = "state_hasil"; @Override protected void onSaveInstanceState(Bundle outState) { outState.putString(STATE_HASIL, tvResult.getText().toString()); super.onSaveInstanceState(outState); } Metode onSaveInstanceState  private static final = deklarasi metode yang tidak dapat diubah (final) berasal dari nilai static dr metode lain dalam kelas yg sama (private).  Protected void = data diakses terbatas  onSaveInstanceState(Bundle outState) = metode penyimpanan pada Bundle outstate  outstate.putString =memasukkan nilai string STATE_HASIL dari nilai string tvResult.  super.onSaveInstanceState(outstate) = memanggil metode pada kelas Activity


Download ppt "Komponen activity Dosen: Maimun, S.T., M.T.. 1. Activity Kegiatan apa yang akan ditampilkan dan dilakukan user pada sebuah window Berisi lifecycle / daur."

Presentasi serupa


Iklan oleh Google