Loading

Cara mengaktifkan thema pada AppCompatActivity Android dengan Java

April 26, 2018     bagicode    

Tips dan Trik Code Android

Hi coder, kali ini kita akan membahas bagaimana cara mengaktifkan thema pada AppCompatActivity Android dengan Java. Sebenarnya untuk mengaktifkan thema atau memilih thema itu cukup mudah jika menggunakan manifest namun hal itu akan sedikit berubah jika kalian ingin themanya bersifat dinamis dengan mengikuti parameter tertentu. Jika kalian mendapatkan permasalah itu, kita akan membahasnya disini (so dont worry guys).

Kapan kita menggunakan cara ini ?

Seperti yang saya jelaskan sebelumnya bahwa akan lebih mudah jika menggunakan manifest, namun kita tidak bisa merubah themanya bersifat dinamis. Untuk itu, cara ini adalah cara tepat jika kalian ingin membuat tema apps Anda menjadi dinamis dengan mengikuti parameter tertentu.

Bagaimana caranya?

Adapun tahapannya adalah :

  1. Membuat daftar warna yang akan digunakan.
  2. Membuat thema-thema yang akan dipakai pada file style.xml (termasuk tema untuk actionbar maupun noactionbar, karna mungkin saja kalian menggunakan kedua tersebut dalam 1 aplikasi Anda).
  3. Membuat parameter yang akan menjadi acuan si thema (tutorial ini menggunakan sharereference untuk penyimpanan sementaranya).
  4. Code di java.

Nah setelah kita membahas bagaimana tahapannya, berikut ini potongan – potongan code yang akan kalian terapkan di aplikasi Anda.

<color name="colorFreshSmoth">#a4b7f7</color>
<color name="colorFreshPrimary">#5978DF</color>
<color name="colorFreshPrimaryDark">#3d5ab9</color>
<color name="colorFreshAccent">#FF4081</color>

<color name="colorExperienceSmoth">#fdafbb</color>
<color name="colorExperiencePrimary">#E36D7E</color>
<color name="colorExperiencePrimaryDark">#c75a69</color>
<color name="colorExperienceAccent">#FF4081</color>
<style name="AppThemeFresh" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorFreshPrimary</item>
    <item name="colorPrimaryDark">@color/colorFreshPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppThemeExperience" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorExperiencePrimary</item>
    <item name="colorPrimaryDark">@color/colorExperiencePrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppThemeFresh.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppThemeExperience.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
...
public void setStatus (String status){
    editor.putString("status", status);
    editor.commit();
}

public String getStatus () {
    return pref.getString("status", "2");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    sharePref = new SharePref(getApplicationContext());
    if (sharePref.getStatus().equals("1")) {
        setTheme(R.style.AppThemeFresh_NoActionBar);
    } else {
        setTheme(R.style.AppThemeExperience_NoActionBar);
    }

    setContentView(R.layout.activity_main);
...
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    sharePref = new SharePref(getApplicationContext());
    if (sharePref.getStatus().equals("1")) {
        setTheme(R.style.AppThemeFresh);
    } else {
        setTheme(R.style.AppThemeExperience);
    }
...

Penjelasan, pada potongan code diatas kita dapat melihat bagian-bagian sesuai tahapannya. Mulai dari tahapan :

  1. Warna
    Pada bagian ini, kita melakukan inisialisasi warna agar nantinya bisa diterapkan pada setting thema.
  2. Thema
    Pada bagian ini, kita membuat thema sendiri dengan 2 jenis (actionbar dan noactionbar).
  3. Share Reference
    Pada bagian ini, kita membuat parameter yang akan menjadi acuan dalam pemilihan thema.
  4. Implementasi code pada noactionbar
    Pada Bagian ini, kita melakukan implementasi code pada noactiobar. Dapat kalian lihat perbedaaanya ada pada saat pemilihan thema.
  5. Implementasi code pada actionbar
    Pada Bagian ini, kita melakukan implementasi code pada noactiobar. Dapat kalian lihat perbedaaanya ada pada saat pemilihan thema.

Nah demikianlah tips cara agar aplikasi Anda dapat dinamis menggunakan parameter tertentu di aplikasi Anda. Semoga bermanfaat dan selamat coding 😀

Categories: Tutorial Android

Leave a Reply