Jumaat, Jun 07, 2013

Android : Koleksi kod aturcara

Sample games
http://www.mediafire.com/download.php?aub8gvcfoykatu
AndroidSQLite
http://www.mediafire.com/?dld4kx3xsrd7x9b
AndroidAlarmSMS
http://www.mediafire.com/?ctdny2srixpasm6
AndroidCompass
http://www.mediafire.com/?4gbr4x4sgm88pea
AndroidSQLite
http://www.mediafire.com/?222tlctk6mlxddu
Android-Button-Example
http://www.mediafire.com/?46jild347yz9r1d
Android-AnalogClock-DigitalClock
http://www.mediafire.com/?qf1qsoc6c8c6p8e
Android-LinearLayout-Example
http://www.mediafire.com/?51rffimi9f7demc
Android-Password-Example
http://www.mediafire.com/?1iitky8010ft6fx
Android-RelativeLayout-Example
http://www.mediafire.com/download/om198g8vsa8t1v8/Android-RelativeLayout-Example.zip
Android-EditText-Example
http://www.mediafire.com/download/4nzoqx6y8q43g28/Android-EditText-Example.zip
Android-ToggleButton-Example
http://www.mediafire.com/download/nbwdst96jk06b6h/Android-ToggleButton-Example.zip
Android-RadioButton-Example
http://www.mediafire.com/download/50tca0z911apd72/Android-RadioButton-Example.zip
Android-Checkbox-Example
http://www.mediafire.com/download/z26nalrr3a3r6br/Android-Checkbox-Example.zip
Android-RatingBar-Example
http://www.mediafire.com/download/8c9vx1j1n4ejlvg/Android-RatingBar-Example.zip
Android-ProgressBar-Example
http://www.mediafire.com/download/nyxb1253aau5ux1/Android-ProgressBar-Example.zip
Android-TimePicker-Example
http://www.mediafire.com/download/zc1abi5yz3hj7n7/Android-TimePicker-Example.zip
Android-DatePicker-Example
http://www.mediafire.com/download/qmw89ep2cp4ffay/Android-DatePicker-Example.zip
Android-Alert-Dialogl-Example
http://www.mediafire.com/download/0gpb3aiqr831v4p/Android-Alert-Dialogl-Example.zip
Android-Spinner-DropDownList-Example
http://www.mediafire.com/download/loaxjuaf6kgodbg/Android-Spinner-DropDownList-Example.zip
Android-Toast-Example
http://www.mediafire.com/download/avrjimk08442l0j/Android-Toast-Example.zip
Android-Custom-Dialog-Example
http://www.mediafire.com/download/xo4pfnjbl0u1tbj/Android-Custom-Dialog-Example.zip
Android-WebView-Example
http://www.mediafire.com/download/dijc12nmmtxpld3/Android-WebView-Example.zip
Android-Prompt-Dialog-Example
http://www.mediafire.com/download/1a819x47r63ih81/Android-Prompt-Dialog-Example.zip
Android-GridView-Example
http://www.mediafire.com/download/gr74dcy6da1vd6z/AndroidGridView_121227a.zip
Android-ListView-Example
http://www.mediafire.com/download/5zze6dp8d4s4n84/Android-ListView-Example.zip
Android-ImageButton-Selector-Example
http://www.mediafire.com/download/6qnnmlpa5pqncqu/Android-ImageButton-Selector-Example.zip
Android-ImageButton-Example
http://www.mediafire.com/download/57iyo23777nhcm5/Android-ImageButton-Example.zip
AndroidAccelerometer
http://www.mediafire.com/download/i3q6a4ftn734v91/AndroidAccelerometer_120222a.zip
Android-ImageView-Example
http://www.mediafire.com/download/m64piiuvk44h1xt/Android-ImageView-Example.zip
AndroidMultiTouch
http://www.mediafire.com/download/m4q5q17odhim54f/AndroidMultiTouch_111230a.zip
AndroidObjectAnimator
http://www.mediafire.com/download/gobhxqfrvdo1902/AndroidObjectAnimator_120215a.zip
AndroidAnimInterpolator
http://www.mediafire.com/download/gobhxqfrvdo1902/AndroidObjectAnimator_120215a.zip
AndroidAnimInterpolator
http://www.mediafire.com/download/e9ibdu97bvf7z9k/AndroidAnimInterpolator_120209a_2.zip
AndroidListMedia
http://www.mediafire.com/download/dghz6xxnwlw9lou/AndroidListMedia_120317a.zip
AndroidShareActionProvider
http://www.mediafire.com/download/jfgukd6kb1uv5a2/AndroidShareActionProvider_120418a.zip
AndroidTime
http://www.mediafire.com/download/5hisaeg8el68get/AndroidTime_120531a.zip
AndroidPlayer
http://www.mediafire.com/download/0ebo6qwm3vf2w2b/AndroidPlayer_120612a.zip
AndroidDetechTouch
http://www.mediafire.com/download/260cxer6acmpzds/AndroidDetechTouch_120503a.zip
AndroidTouchedPixel
http://www.mediafire.com/download/n2qc2ndhs5t8sem/AndroidTouchedPixel_121010a.zip
AndroidColor
http://www.mediafire.com/download/vgube6xah1djz97/AndroidColor_121004a.zip
AndroidGridView
http://www.mediafire.com/download/gr74dcy6da1vd6z/AndroidGridView_121227a.zip
AndroidHorizontalScrollViewGallery
http://www.mediafire.com/download/4sbit6dy67i5ou6/AndroidHorizontalScrollViewGallery_121224a.zip
AndroidExplorer
http://www.mediafire.com/download/0x259978czaarab/AndroidExplorer_20130219a.zip
Flashlight
http://www.mediafire.com/download/s3bvwa6kwbxlp7j/Flashlight.rar

Android : Compass

Fail : AndroidCompass.java
package com.exercise.AndroidCompass;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.Toast;

public class AndroidCompass extends Activity {
	
	private static SensorManager mySensorManager;
	private boolean sersorrunning;
	private MyCompassView myCompassView;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        myCompassView = (MyCompassView)findViewById(R.id.mycompassview);
        
        mySensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
        List<Sensor> mySensors = mySensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
        
        if(mySensors.size() > 0){
        	mySensorManager.registerListener(mySensorEventListener, mySensors.get(0), SensorManager.SENSOR_DELAY_NORMAL);
        	sersorrunning = true;
        	Toast.makeText(this, "Start ORIENTATION Sensor", Toast.LENGTH_LONG).show();	
        	
        }
        else{
        	Toast.makeText(this, "No ORIENTATION Sensor", Toast.LENGTH_LONG).show();
        	sersorrunning = false;
        	finish();	
        }
    }
    
    private SensorEventListener mySensorEventListener = new SensorEventListener(){

		@Override
		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void onSensorChanged(SensorEvent event) {
			// TODO Auto-generated method stub
			myCompassView.updateDirection((float)event.values[0]);
		}
    };

	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		
		if(sersorrunning){
			mySensorManager.unregisterListener(mySensorEventListener);	
		}
	}

}

Fail : MyCompassView.java
package com.exercise.AndroidCompass;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class MyCompassView extends View {

	private float direction = 0;
	private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
	private boolean firstDraw;
	
	public MyCompassView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
		init();
	}

	public MyCompassView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
		init();
	}

	public MyCompassView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		// TODO Auto-generated constructor stub
		init();
	}
	
	private void init(){
		
		paint.setStyle(Paint.Style.STROKE);
		paint.setStrokeWidth(3);
		paint.setColor(Color.WHITE);
		paint.setTextSize(30);
		
		firstDraw = true;
	}

	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		// TODO Auto-generated method stub
		setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec));
	}

	@Override
	protected void onDraw(Canvas canvas) {
		// TODO Auto-generated method stub
		 
		int cxCompass = getMeasuredWidth()/2;
		int cyCompass = getMeasuredHeight()/2;
		float radiusCompass;
		
		if(cxCompass > cyCompass){
			radiusCompass = (float) (cyCompass * 0.9);
		}
		else{
			radiusCompass = (float) (cxCompass * 0.9);
		}
		canvas.drawCircle(cxCompass, cyCompass, radiusCompass, paint);
		canvas.drawRect(0, 0, getMeasuredWidth(), getMeasuredHeight(), paint);
		
		if(!firstDraw){
		
			canvas.drawLine(cxCompass, cyCompass, 
					(float)(cxCompass + radiusCompass * Math.sin((double)(-direction) * 3.14/180)), 
					(float)(cyCompass - radiusCompass * Math.cos((double)(-direction) * 3.14/180)), 
					paint);
		
			canvas.drawText(String.valueOf(direction), cxCompass, cyCompass, paint);
		}
		
	}
	
	public void updateDirection(float dir)
	{
		firstDraw = false;
		direction = dir;
		invalidate();
	}
	

}

Fail : AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.exercise.AndroidCompass"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".AndroidCompass"
                  android:label="@string/app_name"
                  android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="4" />

</manifest> 

Fail : main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<view
	class="com.exercise.AndroidCompass.MyCompassView"
	android:id="@+id/mycompassview"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	/>
</LinearLayout>

Android : Alarm SMS

Fail : AndroidAlarmSMS.java
package com.exercise.AndroidAlarmSMS;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class AndroidAlarmSMS extends Activity {

	String smsNumber, smsText;
	private PendingIntent pendingIntent;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final EditText edittextSmsNumber = (EditText)findViewById(R.id.smsnumber);
        final EditText edittextSmsText = (EditText)findViewById(R.id.smstext);
        
        Button buttonStart = (Button)findViewById(R.id.startalarm);
        Button buttonCancel = (Button)findViewById(R.id.cancelalarm);
        
        buttonStart.setOnClickListener(new Button.OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				smsNumber = edittextSmsNumber.getText().toString();
				smsText = edittextSmsText.getText().toString();
				
				Intent myIntent = new Intent(AndroidAlarmSMS.this, MyAlarmService.class);
				
				Bundle bundle = new Bundle();
	            bundle.putCharSequence("extraSmsNumber", smsNumber);
	            bundle.putCharSequence("extraSmsText", smsText);
	            myIntent.putExtras(bundle);
				
				pendingIntent = PendingIntent.getService(AndroidAlarmSMS.this, 0, myIntent, 0);
				
				AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

	            Calendar calendar = Calendar.getInstance();
	            calendar.setTimeInMillis(System.currentTimeMillis());
	            calendar.add(Calendar.SECOND, 10);
	            alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
	         
	            Toast.makeText(AndroidAlarmSMS.this, 
	            		"Start Alarm with \n" +
	            		"smsNumber = " + smsNumber + "\n" +
	            		"smsText = " + smsText, 
	            		Toast.LENGTH_LONG).show();
				
			}});
        
        buttonCancel.setOnClickListener(new Button.OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
				alarmManager.cancel(pendingIntent);
				Toast.makeText(AndroidAlarmSMS.this, "Cancel!", Toast.LENGTH_LONG).show();
				
			}});
    }
    
}

Fail : MyAlarmService.java
package com.exercise.AndroidAlarmSMS;

import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
import android.telephony.SmsManager;
import android.widget.Toast;

public class MyAlarmService extends Service {
	
	String smsNumberToSend, smsTextToSend;

	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		
		Toast.makeText(this, "MyAlarmService.onCreate()", Toast.LENGTH_LONG).show();
	}

	@Override
	public IBinder onBind(Intent arg0) {
		// TODO Auto-generated method stub
		Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG).show();
		return null;
	}
	
	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		 super.onDestroy();
		 Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG).show();
	}

	@Override
	public void onStart(Intent intent, int startId) {
		// TODO Auto-generated method stub
		super.onStart(intent, startId);
		
		Bundle bundle = intent.getExtras();
        smsNumberToSend = (String) bundle.getCharSequence("extraSmsNumber");
        smsTextToSend = (String) bundle.getCharSequence("extraSmsText");
		
		Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG).show();
		Toast.makeText(this, 
        		"MyAlarmService.onStart() with \n" +
        		"smsNumberToSend = " + smsNumberToSend + "\n" +
        		"smsTextToSend = " + smsTextToSend, 
        		Toast.LENGTH_LONG).show();
		
		SmsManager smsManager = SmsManager.getDefault();
		smsManager.sendTextMessage(smsNumberToSend, null, smsTextToSend, null, null);
	}

	@Override
	public boolean onUnbind(Intent intent) {
		// TODO Auto-generated method stub
		Toast.makeText(this, "MyAlarmService.onUnbind()", Toast.LENGTH_LONG).show();
		return super.onUnbind(intent);
	}

}

Fail : AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.exercise.AndroidAlarmSMS"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="4" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".AndroidAlarmSMS"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:name=".MyAlarmService" />
    </application>
    <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
</manifest>

Fail : main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Enter Phone Number:"
    />
<EditText 
    android:id="@+id/smsnumber"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="phone"
    />
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Enter Phone SMS Text:"
    />
<EditText 
    android:id="@+id/smstext"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
<Button
    android:id="@+id/startalarm"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Start"
    />
<Button
    android:id="@+id/cancelalarm"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Cancel"
    />
</LinearLayout>

Andoid : SQLite

Fail : AndroidSQLite.java
package com.exercise.AndroidSQLite;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class AndroidSQLite extends Activity {
	
	private SQLiteAdapter mySQLiteAdapter;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ListView listContent = (ListView)findViewById(R.id.contentlist);
        
        /*
         * 	Create/Open a SQLite database
         *  and fill with dummy content
         *  and close it
         */
        mySQLiteAdapter = new SQLiteAdapter(this);
        mySQLiteAdapter.openToWrite();
        mySQLiteAdapter.deleteAll();

        mySQLiteAdapter.insert("A for Apply");
        mySQLiteAdapter.insert("B for Boy");
        mySQLiteAdapter.insert("C for Cat");
        mySQLiteAdapter.insert("D for Dog");
        mySQLiteAdapter.insert("E for Egg");
        mySQLiteAdapter.insert("F for Fish");
        mySQLiteAdapter.insert("G for Girl");
        mySQLiteAdapter.insert("H for Hand");
        mySQLiteAdapter.insert("I for Ice-scream");
        mySQLiteAdapter.insert("J for Jet");
        mySQLiteAdapter.insert("K for Kite");
        mySQLiteAdapter.insert("L for Lamp");
        mySQLiteAdapter.insert("M for Man");
        mySQLiteAdapter.insert("N for Nose");
        mySQLiteAdapter.insert("O for Orange");
        mySQLiteAdapter.insert("P for Pen");
        mySQLiteAdapter.insert("Q for Queen");
        mySQLiteAdapter.insert("R for Rain");
        mySQLiteAdapter.insert("S for Sugar");
        mySQLiteAdapter.insert("T for Tree");
        mySQLiteAdapter.insert("U for Umbrella");
        mySQLiteAdapter.insert("V for Van");
        mySQLiteAdapter.insert("W for Water");
        mySQLiteAdapter.insert("X for X'mas");
        mySQLiteAdapter.insert("Y for Yellow");
        mySQLiteAdapter.insert("Z for Zoo");
        
        mySQLiteAdapter.close();

        /*
         * 	Open the same SQLite database
         * 	and read all it's content.
         */
        mySQLiteAdapter = new SQLiteAdapter(this);
        mySQLiteAdapter.openToRead();

        Cursor cursor = mySQLiteAdapter.queueAll();
        startManagingCursor(cursor);
 
        String[] from = new String[]{SQLiteAdapter.KEY_CONTENT};
        int[] to = new int[]{R.id.text};

        SimpleCursorAdapter cursorAdapter =
        	new SimpleCursorAdapter(this, R.layout.row, cursor, from, to);

        listContent.setAdapter(cursorAdapter);
        
        mySQLiteAdapter.close();

        
    }
}

Fail : SQLiteAdapter.java
package com.exercise.AndroidSQLite;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class SQLiteAdapter {

	public static final String MYDATABASE_NAME = "MY_DATABASE";
	public static final String MYDATABASE_TABLE = "MY_TABLE";
	public static final int MYDATABASE_VERSION = 1;
	public static final String KEY_ID = "_id";
	public static final String KEY_CONTENT = "Content";

	//create table MY_DATABASE (ID integer primary key, Content text not null);
	private static final String SCRIPT_CREATE_DATABASE =
		"create table " + MYDATABASE_TABLE + " ("
		+ KEY_ID + " integer primary key autoincrement, "
		+ KEY_CONTENT + " text not null);";
	
	private SQLiteHelper sqLiteHelper;
	private SQLiteDatabase sqLiteDatabase;

	private Context context;
	
	public SQLiteAdapter(Context c){
		context = c;
	}
	
	public SQLiteAdapter openToRead() throws android.database.SQLException {
		sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION);
		sqLiteDatabase = sqLiteHelper.getReadableDatabase();
		return this;	
	}
	
	public SQLiteAdapter openToWrite() throws android.database.SQLException {
		sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION);
		sqLiteDatabase = sqLiteHelper.getWritableDatabase();
		return this;	
	}
	
	public void close(){
		sqLiteHelper.close();
	}
	
	public long insert(String content){
		
		ContentValues contentValues = new ContentValues();
		contentValues.put(KEY_CONTENT, content);
		return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues);
	}
	
	public int deleteAll(){
		return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null);
	}
	
	public Cursor queueAll(){
		String[] columns = new String[]{KEY_ID, KEY_CONTENT};
		Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns, 
				null, null, null, null, null);
		
		return cursor;
	}
	
	public class SQLiteHelper extends SQLiteOpenHelper {

		public SQLiteHelper(Context context, String name,
				CursorFactory factory, int version) {
			super(context, name, factory, version);
		}

		@Override
		public void onCreate(SQLiteDatabase db) {
			// TODO Auto-generated method stub
			db.execSQL(SCRIPT_CREATE_DATABASE);
		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
			// TODO Auto-generated method stub

		}

	}
	
}

Fail : row.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/text"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:padding="10dip"/>

Fail : main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<ListView
	android:id="@+id/contentlist"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"/>
</LinearLayout>

Muat-turun fail :
http://www.mediafire.com/?dld4kx3xsrd7x9b