27 Mar

Mendapatkan Activity yang Sedang Aktif

Dear Android Developers,

ada kalanya kita membutuhkan perintah untuk mengetahui activity apa yang sedang aktif ditampilkan ke user saat ini. Langkah pertama adalah dengan menambahkan permission pada AndroidManifest.xml

uses-permission android:name="android.permission.GET_TASKS"

kemudian kita bisa mendapatkan activity yang aktif dengan menggunakan kode program berikut

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);

// get the info from the currently running task
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1); 

Log.d("topActivity", "CURRENT Activity ::"
        + taskInfo.get(0).topActivity.getClassName());

ComponentName componentInfo = taskInfo.get(0).topActivity;
String paket = componentInfo.getPackageName();

Selamat Mencoba dan semoga bermanfaat

11 Mar

Deteksi Click pada Radio Button Android

Dear JavaClopedia Developers,

Tutorial baru lagi nih, mumpung super semangat. Berikut akan saya bahas mengenai cara mendeteksi event Click pada Radio Button yang telah kita masukkan ke dalam desain Layout XML. Ada 2 cara memberikan deteksi event Click pada Radion Button. Kita mulai yang pertama.

1. Ditentukan melalui Layout XML

cara yang pertama, kita dapat menentukan method yang akan dipanggil ketika Radio Button tersebut di click. perhatikan potongan kode program pada XML Layout berikut ini:

RadioButton
        android:id="@+id/radio_right1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/rad_option1"
        android:checked="true"
        android:textColor="#f00"
        android:onClick="onRadioButtonClick"
/>

perhatikan kode program android:onClick=”onRadionButtonClick” artinya adalah kita tentukan apabila nanti RadioButton di klik, maka panggilan method onRadionButtonClick(). Kira-kira begitu logika gampangnya. selanjutnya berarti di dalam Activity, kita harus tambahkan method tersebut seperti berikut ini:

public void onRadioButtonClick(View v) {
    RadioButton button = (RadioButton) v;
    Toast.makeText(SimpleRadioButtonActivity.this,
        button.getText() + " was chosen.",
        Toast.LENGTH_SHORT).show();
}

2. Diset di dalam kode program (programatically)

cara yang kedua, adalah dengan menggunakan kode program secara langsung. Perhatikan potongan kode program berikut ini:

RadioGroup radio = (RadioGroup) findViewById(R.id.radio_right1);
OnClickListener radio_listener = new OnClickListener() {
    public void onClick(View v) {
        onRadioButtonClick(v);
    }
};

Perhatikan bahwa di dalam kode program di atas, kita override method public void onClick() kemudian di dalamnya kita isi dengan kode program yang akan dijalankan ketika Radio Button tersebut di click oleh user.

Selamat Mencoba!

Best Regards,

Andi Taru – JavaClopedia

08 Mar

Android Call Phone History Programmatically

Tutorial ini berisi tentang bagaimana cara membaca phone call history melalui kode program langsung (programmatically) di device Android. Berikut langkah-langkah yang harus ditempuh:

    • Pastikan kita sudah menguasai pembuatan Hello World di Android. Kalau belum, bisa beli buku-buku android atau mencari tutorial dasar pemrograman Android atau bisa juga cari di Website ini.
    • Buat project baru standard aplikasi Android
    • Buka file AndroidManifest.xml, tambahkan permission untuk membaca contacts di HP:
<uses-permission android:name="android.permission.READ_CONTACTS" />
    • selanjutnya buat berkas custom_layout.xml di dalam folder res/layout/
<Linearlayout android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">
<Textview android:id="@+id/call"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
</Textview>
</Linearlayout>
    • berikutnya buka kode program activity yang telah dibuat. buka pada package dan class yang tersedia, lengkap kode program menjadi berikut ini:
private void getCallDetails() {

  StringBuffer sb = new StringBuffer();
  Cursor managedCursor = managedQuery( CallLog.Calls.CONTENT_URI,null, null,null, null);
  int number = managedCursor.getColumnIndex( CallLog.Calls.NUMBER );
  int type = managedCursor.getColumnIndex( CallLog.Calls.TYPE );
  int date = managedCursor.getColumnIndex( CallLog.Calls.DATE);
  int duration = managedCursor.getColumnIndex( CallLog.Calls.DURATION);
  sb.append( "Call Details :");
  while ( managedCursor.moveToNext() ) {
    String phNumber = managedCursor.getString( number );
    String callType = managedCursor.getString( type );
    String callDate = managedCursor.getString( date );
    Date callDayTime = new Date(Long.valueOf(callDate));
    String callDuration = managedCursor.getString( duration );
  String dir = null;
  int dircode = Integer.parseInt( callType );
  switch( dircode ) {
    case CallLog.Calls.OUTGOING_TYPE:
      dir = "OUTGOING";
      break;

    case CallLog.Calls.INCOMING_TYPE:
      dir = "INCOMING";
      break;

    case CallLog.Calls.MISSED_TYPE:
      dir = "MISSED";
      break;
  }
    sb.append( "\nPhone Number:--- "+phNumber +" \nCall  Type:--- "+dir+" \nCall Date:--- "+callDayTime+" \nCall    duration in sec :--- "+callDuration );
    sb.append("\n----------------------------------");
  }
  managedCursor.close();
  call.setText(sb);
}

Selamat mencoba!

Best Regards,

Andi Taru – Founder JavaClopedia and Educa Studio

28 Oct

Generate JSON from PHP

$data = array(
    (object)array(
        'nama' => 'Andi Taru',
        'alamat' => 'Salatiga',
    ),
    (object)array(
        'nama' => 'Niken',
        'alamat' => 'Ungaran',
    ),
);
echo json_encode($data);

Hasil dari kode program di atas adalah:

[{"nama":"Andi Taru","alamat":"Salatiga"},{"nama":"Niken","alamat":"Ungaran"}]

artinya ada dua data di dalam JSON, setiap data memiliki nama dan alamat.

28 Oct

Parsing XML from JQuery

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<p id="someElement"></p>
<p id="anotherElement"></p>

<script>
var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>",
    xmlDoc = $.parseXML( xml ),
    $xml = $( xmlDoc ),
    $title = $xml.find( "title" );

/* append "RSS Title" to #someElement */
$( "#someElement" ).append( $title.text() );

/* change the title to "XML Title" */
$title.text( "XML Title" );

/* append "XML Title" to #anotherElement */
$( "#anotherElement" ).append( $title.text() );
</script>

</body>
</html>

Keterangan:
Baris 4: isi dengan path jquery sesuai dengan kebutuhan
Baris 12: contoh isi XML yang akan di parsing
Baris 13: parsing XML document dari JQuery
Baris 15: contoh pencarian element tertentu dalam XML (title)

13 Sep

Integrasi AdMob dengan AndEngine

Step 1. Masukkan SDK AdMob ke dalam Project
Copy sdk file to lib folder inside your project, then right-click on the file build path -> add to build path.

Step 2. Edit AndroidManifest.xml

masukkan permissions ke manifest file

<uses-permission android:name=”android.permission.INTERNET” />
<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>

Add activity to your manifest file

<activity android:name=”com.google.ads.AdActivity”
android:configChanges=”keyboard|keyboardHidden|orientation| screenLayout|uiMode|screenSize|smallestScreenSize”
android:theme=”@android:style/Theme.NoTitleBar.Fullscreen”/>

Step 3. Change project target

New version of admob sdk requires to set target level to 13 or above. It doesn’t mean that your application won’t works on devices with lower api level.

Right-click on your project then properties->android and select Project Build Taget to Android 3.2

Step 4. Add adView to layout.

Remeber to use RelativeLayout!

<?xml version=”1.0″ encoding=”utf-8″?>
<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:ads=”http://schemas.android.com/apk/lib/com.google.ads”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent” >

<org.anddev.andengine.opengl.view.RenderSurfaceView
android:id=”@+id/xmllayoutRenderSurfaceView”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:layout_centerInParent=”true”
android:gravity=”center” />
<com.google.ads.AdView
android:id=”@+id/adView”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignBottom=”@id/xmllayoutRenderSurfaceView”
ads:adSize=”BANNER”
ads:adUnitId=”<your code>”
ads:loadAdOnCreate=”true” />
</RelativeLayout>

Step 5. Add layout to activity
Your activity needs to extends LayoutBaseActivity

public class Main extends LayoutGameActivity
Override those two methods

@Override
protected int getLayoutID()
{
return R.layout.main;
}

@Override
protected int getRenderSurfaceViewID()
{
return R.id.xmllayoutRenderSurfaceView;
}

13 Sep

Background ListView becomes black when scrolling

When we scroll ListView, the background become black when scrolling.
The solution is we can set on ListView XML:

android:cacheColorHint="#00000000"

Ketika kita melakukan scroll pada listview, akan muncul background warna hitam.
Caranya adalah dengan menambahkan atribute pada list view di definisi XML sbb:
android:cacheColorHint=”#00000000″

Semoga bermanfaat

12 Aug

Android Passing Parameter Antar Activity

Halo, mumpung ada waktu nulis lagi. Saya akan menulis tutorial sederhana tapi bermanfaat.

Kadang kita membuat program yang menggunakan beberapa activity. sebagai contoh kita punya dua activity dengan activity pertama kita berupa List Daftar Negara. Sedangkan Activity kedua adalah tampilan tentang apa yang dipilih pada Actity pertama. Bagaimana Activity kedua mengetahui apa yang dipilih pada activity pertama?

Berikut contoh kode programnya:

Intent myIntent = new Intent(this, ActivtyKedua.class);
myIntent.putExtra("pilihanNegara","Indonesia");
startActivity(myIntent);

Kode program di atas merupakan kode program yang berguna untuk melakukan pemindahan activity disertai dengan passing parameter. Parameter yang dipassing adalah “pilihanNegara” dengan isi “Indonesia”. Bagaimana cara mengambilnya dari Activity kedua?

Intent myIntent= getIntent();
String pilihanNegera = intent.getStringExtra("pilihanNegara")

Kode program di atas merupakan kode program pada Activity kedua, di mana parameter pilihanNegara diambil dari getStringExtra(). Ingat, getStringExtra() digunakan karena tipe datanya adlah String. Kalau integer kita dapat mengambilnya dengan cara getIntExtra().

Semoga jelas dan dapat bermanfaat :)