- To add line numbers Eclipse -> Window -> Preferences
- Select General -> Editors -> Text Editors and tick on Show line numbers
Monday, November 26, 2012
How To Add Line Numbers in Eclipse
By adding line numbers in eclipse, it makes a little easier to debug , find and fix errors in your project.
Tuesday, November 13, 2012
AsyncTask Android example | AsyncTask in Android
In this tutorial you will learn how to use AsyncTask in your application. This AsyncTask class perform background operations and update the results on the UI
AsyncTask has three generic type
AsyncTask goes through 4 steps
AsyncTaskActivity
activity_async_task.xml
Download AsyncTask Android example
AsyncTask has three generic type
- Params, the type of the parameters sent to the task upon execution.
- Progress, the type of the progress units published during the background computation.
- Result, the type of the result of the background computation
Private class ShowDialogAsyncTask extends AsyncTask<Params, Progress, Result>{....}
AsyncTask goes through 4 steps
- onPreExecute(),invoked on the UI thread immediately after the task is executed.
- doInBackground(Paaram ...),invoked on the background thread immediately after onPreExecute() finishes executing.
- onProgressUpdate(Progress...) invoked on the UI thread after a call to publishProgress(Progress...).
- onPostExecute(Result), invoked on the UI thread after the background computation finishes.
AsyncTaskActivity
package com.javasrilankansupport.asynctask; import android.os.AsyncTask; import android.os.Bundle; import android.os.SystemClock; import android.app.Activity; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; public class AsyncTaskActivity extends Activity { Button btn_start; ProgressBar progressBar; TextView txt_percentage; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_async_task); btn_start = (Button) findViewById(R.id.btn_start); progressBar = (ProgressBar) findViewById(R.id.progress); txt_percentage= (TextView) findViewById(R.id.txt_percentage); btn_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { btn_start.setEnabled(false); new ShowDialogAsyncTask().execute(); } }); } private class ShowDialogAsyncTask extends AsyncTask<Void, Integer, Void>{ int progress_status; @Override protected void onPreExecute() { // update the UI immediately after the task is executed super.onPreExecute(); Toast.makeText(AsyncTaskActivity.this, "Invoke onPreExecute()", Toast.LENGTH_SHORT).show(); progress_status = 0; txt_percentage.setText("downloading 0%"); } @Override protected Void doInBackground(Void... params) { while(progress_status<100){ progress_status += 2; publishProgress(progress_status); SystemClock.sleep(300); } return null; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); progressBar.setProgress(values[0]); txt_percentage.setText("downloading " +values[0]+"%"); } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); Toast.makeText(AsyncTaskActivity.this, "Invoke onPostExecute()", Toast.LENGTH_SHORT).show(); txt_percentage.setText("download complete"); btn_start.setEnabled(true); } } }
activity_async_task.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:padding="@dimen/padding_medium" android:text="@string/async_task" tools:context=".AsyncTaskActivity" /> <ProgressBar android:id="@+id/progress" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_marginTop="34dp" /> <Button android:id="@+id/btn_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/progress" android:layout_centerHorizontal="true" android:layout_marginTop="40dp" android:minWidth="120dp" android:text="@string/start_btn" /> <TextView android:id="@+id/txt_percentage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/progress" android:text="downloading 0%" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout>
Download AsyncTask Android example