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)

25 Sep

Deteksi Multitouch di Android

Kita perlu melakukan deteksi multitouch untuk keperluan khusus, misalnya saja kita ingin membuat alat musik digital di Android. Berikut ulasan javaclopedia tentang Multitouch di Android:
1. Kita Buat kelas Extends View. Kita sebut saja MultitouchView

public class MultitouchView extends View {
        public MultitouchView(Context context) {
                super(context);
        } 
}

2. Di dalamnya perlu kita masukkan 2 konstruktur sbb:

        public MultitouchView(Context context, AttributeSet attrs, int defStyle) {
                super(context, attrs, defStyle);
 
        }
 
        public MultitouchView(Context context, AttributeSet attrs) {
                super(context, attrs);
 
        }

3. Masuk ke main.xml (res/layout/main/xml) untuk mengatur layoutnya:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
<com.helloandroid.multitouchexample.MultitouchView
        android:id="@+id/touchView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
 
</LinearLayout>

4. Buat activity sebagai main class:

public class Main extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
        }
}

5. Tambahkan method berikut di kelas MultitouchView:

@Override
        public boolean onTouchEvent(MotionEvent event) {
                super.onTouchEvent(event);
 
               
                int action = event.getAction() & MotionEvent.ACTION_MASK;
       
                switch (action) {
                case MotionEvent.ACTION_DOWN: {
                        Log.d("MultitouchExample","Action Down");
                        break;
                }
                case MotionEvent.ACTION_MOVE: {
                        Log.d("MultitouchExample","Action Move");
                        break;
                }
 
                case MotionEvent.ACTION_POINTER_DOWN: {
                        Log.d("MultitouchExample","Pointer Down");
                break;
                }
                case MotionEvent.ACTION_POINTER_UP: {
                        Log.d("MultitouchExample","Pointer up");
 
                        break;
                }
                case MotionEvent.ACTION_UP: {
                        Log.d("Multitouch", "Action up");
               
                        break;
                }
                }
 
                return true;
        }

Berikut event-event yang dapat ditangani:
ACTION_DOWN dipanggil ketika jari user pertama menyentuh screen.
ACTION_MOVE dipanggil ketika user menggeser jarinya di screen.
ACTION_POINTER_DOWN dipanggil ketika jari user kedua kalinya menyentuk screen (multitouch).

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 :)