free counters
Diberdayakan oleh Blogger.
Tampilkan postingan dengan label Android Tips. Tampilkan semua postingan
Tampilkan postingan dengan label Android Tips. Tampilkan semua postingan

Rabu, 27 Juli 2016

Menampilkan string dengan cetak tebal menggunakan strings.xml dan pre-formatted string

by Unknown  |  in Android Tips at  Rabu, Juli 27, 2016
Untuk menampilkan teks nominal yang ditebalkan (bold) dan dalam bentuk nilai mata uang dapat dilakukan dengan menggunakan formatter dan string di strings.xml file. Misalkan kita memiliki nilai nominal 10000 dalam tipe long:

long nominal = 10000;

Untuk memformatnya ke dalam bentuk nilai mata uang, kita menggunakan:

DecimalFormat formatter = new DecimalFormat("###,###,###.##");

Kemudian jika ingin ditampilkan menggunakan pre-formatted string seperti
Your Remaining balance: Rp 10.000,
 kita terlebih dahulu harus menyiapkan file strings.xml seperti ini:

<resources>
  <string name="remaining_balance">Your Remaining balance: &lt;b>Rp. %s&lt;/b></string>
</resources>

Setelah itu kita baca sebagai html, lalu set ke TextView atau EditText yang kita mau. Seperti ini:

String balance = getString(R.string.remaining_balance, formatter.format(nilaiNominal));
CharSequence styledText = Html.fromHtml(balance);
textView.setText(styledText);

Maka keseluruhan kodenya akan menjadi seperti ini:

long nominal = 10000; // Nilai yang mau ditampilkan
DecimalFormat formatter = new DecimalFormat("###,###,###.##"); // Format ke uang
String balance = getString(R.string.remaining_balance, formatter.format(nominal)); // sesuaikan dengan pre-formatted string.
CharSequence styledText = Html.fromHtml(balance); // baca sebagai html
textView.setText(styledText); // terapkan ke TextView atau EditText


Salam Slacker.

Sabtu, 05 Maret 2016

Mengubah warna tanda panah back di theme material Android

by Unknown  |  in Android Tips at  Sabtu, Maret 05, 2016
Saya tadi pagi kesulitan untuk membuat warna tanda panah back di action bar Android menjadi berwarna putih. Keseluruhan design aplikasi yang saya buat memakai theme dark dengan tulisan judul action bar berwarna putih.

Awalnya saya mencoba dengan menambahkan kode di style.xml seperti ini:
 <item name="colorControlNormal">@color/white</item>   
namun, tanda panahnya sama sekali tidak berubah, tetap hitam seperti Gambar 1 di bawah ini:

Gambar 1, dengan kode xml di style

Solusinya ternyata adalah dengan menggunakan kode di bawah ini:
1:  // Ini untuk support library 23.2.0. Untuk support library di bawahnya,  
2:  // gunakan R.drawable.abc_ic_ab_back_mtrl_am_alpha  
3:  final Drawable upArrow = ContextCompat.getDrawable(this, R.drawable.abc_ic_ab_back_material);  
4:  upArrow.setColorFilter(ContextCompat.getColor(this, R.color.white), PorterDuff.Mode.SRC_ATOP);  
5:  getSupportActionBar().setHomeAsUpIndicator(upArrow);  
Hasilnya setelah diterapkan dapat dilihat pada Gambar 2 di bawah ini:

Gambar 2, dengan kode Java

Semoga dapat membantu :).



Referensi:
1.How to change color of the back arrow in the new material theme?
2.How to set Toolbar text and back arrow color

Senin, 29 Februari 2016

Link yang dapat diklik dari String untuk TextView Android

by Unknown  |  in pemrograman visual at  Senin, Februari 29, 2016


Contoh project dari artikel ini dapat di download Di sini.

Ada beberapa cara tersembunyi yang dapat kita pakai untuk membuat link url dalam sebuah string bekerja di AppCompatTextView pada Android.

Saya menemukan bahwa di custom view (sejujurnya, saya masih mencoba dengan Material Dialogs), sebuah string dengan url hanya bekerja jika kita menggunakan setMovementMethod untuk TextView


Pada Custom View

Jika kita ingin sebuah string yang mengandung url dan kode html di custom view seperti ini:
 Created by <b>Joielechong</b> (<a href="http://www.rilixtech.com">rilixtech.com</a>)  
Dengan TextView di layout seperti file xml di bawah ini:
1:  <?xml version="1.0" encoding="utf-8"?>  
2:  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3:    android:id="@+id/sample_layout"  
4:    android:layout_width="match_parent"  
5:    android:layout_height="match_parent"  
6:    >  
7:    
8:   <android.support.v7.widget.AppCompatTextView  
9:     android:id="@+id/sample_layout_title"  
10:     android:layout_width="wrap_content"  
11:     android:layout_height="wrap_content"  
12:     android:textSize="18sp"  
13:     />  
14:  </RelativeLayout>  
Kita tidak akan bisa membuatnya bekerja jika menggunakan attribut android:autoLink="all" atau android:linksClickable="true". Jadi, kode di bawah ini Tidak Akan Bekerja:
1:  <?xml version="1.0" encoding="utf-8"?>  
2:  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3:    android:id="@+id/sample_layout"  
4:    android:layout_width="match_parent"  
5:    android:layout_height="match_parent"  
6:    >  
7:    
8:   <android.support.v7.widget.AppCompatTextView  
9:     android:id="@+id/sample_layout_title"  
10:     android:layout_width="wrap_content"  
11:     android:layout_height="wrap_content"  
12:     android:text="@string/test_string_1"  
13:     android:textSize="18sp"  
14:     android:autoLink="all"  
15:     android:linksClickable="true"  
16:     />  
17:    
18:  </RelativeLayout>  
Untuk membuatnya bekerja, kita harus menambahkan baris berikut pada kelas:
 textView.setMovementMethod(LinkMovementMethod.getInstance());  
Jangan lupa untuk menghapus attribut android:autoLink="all" di layout xml karena attribut ini akan menyebabkan kode di atas tidak berfungsi sama sekali.


Pada Normal View

Jika kita menggunakan setMovementMethod untuk TextView tanpa menggunakan attribut android:autoLink="all" di layout, link url akan bekerja. Link url juga akan bekerja jika kita hanya menggunakan android:autolink="all". Tetapi jika kita hanya menggunakan attribut android:linksClickable="true" maka link url tidak akan bekerja sama sekali.

Download project artikel ini  Di sini.

Referensi:
How do I make links in a TextView clickable?
I want text view as a clickable link
Android: textview hyperlink
Make a hyperlink textview in android
How to make normal links in TextView clickable?

Clickable Link In String for TextView Android

by Unknown  |  in pemrograman visual at  Senin, Februari 29, 2016


You can download the working example for this tutorial in Here.

There are some hidden quirk that could be use to make an url link in string working in AppCompatTextView in android.

I found that in custom view (honestly, I just trying it with Material Dialogs), a string with an url only work if we use setMovementMethod for TextView


In Custom View

If we want a string containing an url and html code in custom view like this:
 Created by <b>Joielechong</b> (<a href="http://www.rilixtech.com">rilixtech.com</a>)  
For a TextView in a layout like the following xml file:
1:  <?xml version="1.0" encoding="utf-8"?>  
2:  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3:    android:id="@+id/sample_layout"  
4:    android:layout_width="match_parent"  
5:    android:layout_height="match_parent"  
6:    >  
7:    
8:   <android.support.v7.widget.AppCompatTextView  
9:     android:id="@+id/sample_layout_title"  
10:     android:layout_width="wrap_content"  
11:     android:layout_height="wrap_content"  
12:     android:textSize="18sp"  
13:     />  
14:  </RelativeLayout>  
We can't make it work by using either android:autoLink="all" or android:linksClickable="true". So the following code Won't work:
1:  <?xml version="1.0" encoding="utf-8"?>  
2:  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3:    android:id="@+id/sample_layout"  
4:    android:layout_width="match_parent"  
5:    android:layout_height="match_parent"  
6:    >  
7:    
8:   <android.support.v7.widget.AppCompatTextView  
9:     android:id="@+id/sample_layout_title"  
10:     android:layout_width="wrap_content"  
11:     android:layout_height="wrap_content"  
12:     android:text="@string/test_string_1"  
13:     android:textSize="18sp"  
14:     android:autoLink="all"  
15:     android:linksClickable="true"  
16:     />  
17:    
18:  </RelativeLayout>  
To make it work, we must add a line of code in our working class below:
 textView.setMovementMethod(LinkMovementMethod.getInstance());  
Remember to remove android:autoLink="all" in your layout xml because it render the above code useless.


In Normal View

If we use setMovementMethod for TextView and without android:autoLink="all" attribute in layout, url link will be enabled. Using only android:autolink="all" will also working. By using only android:linksClickable="true" url link will not working at all.

Download the working project Here.


Reference:
How do I make links in a TextView clickable?
I want text view as a clickable link
Android: textview hyperlink
Make a hyperlink textview in android
How to make normal links in TextView clickable?

Jumat, 26 Februari 2016

Error: You need to use a Theme.AppCompat theme (or descendant) with the design library

by Unknown  |  in Android Tips at  Jumat, Februari 26, 2016
If you in the middle of developing android application with Android Studio when the day before it's working fine, but in the next editing you encountered an error like this:

Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayoutat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)...
Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.

Please go and check your module library and replace the style of it with Theme.AppCompat theme (or descendant). It's not your fault, it's because you're using some library that too old or not using the same theme with your app code.

Don't waste your time by pulling your hair..;).


Happy Programming.