Displaying data in a List is essential to any application whether its Mobile, Desktop or even back-end enterprise application. ListActivity lets you create a List without specifying a Layout as it already hosts a ListView object that can be bound to a data source such as an array or a database Cursor. In this example we are displaying data from an ArrayList and listening to the OnItemClickListener so that we can capture a click event if the user touches a specific row in the List.
Source for Activity - AndroidListViewActivity.java
package com.as400samplecode;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.view.Gravity;
import android.view.View;
public class AndroidListViewActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Generate list View from ArrayList
displayListView();
}
private void displayListView() {
//Array list of countries
List<String> countryList = new ArrayList<String>();
countryList.add("Aruba");
countryList.add("Anguilla");
countryList.add("Netherlands Antilles");
countryList.add("Antigua and Barbuda");
countryList.add("Bahamas");
countryList.add("Belize");
countryList.add("Bermuda");
countryList.add("Barbados");
countryList.add("Canada");
countryList.add("Costa Rica");
countryList.add("Cuba");
countryList.add("Cayman Islands");
countryList.add("Dominica");
countryList.add("Dominican Republic");
countryList.add("Guadeloupe");
countryList.add("Grenada");
countryList.add("Greenland");
countryList.add("Guatemala");
countryList.add("Honduras");
countryList.add("Haiti");
countryList.add("Jamaica");
//create an ArrayAdaptar from the String Array
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
R.layout.country_list, countryList);
setListAdapter(dataAdapter);
ListView listView = getListView();
//enables filtering for the contents of the given ListView
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast toast = Toast.makeText(getApplicationContext(),
((TextView) view).getText(), Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 25, 300);
toast.show();
}
});
}
}
Source for List Layout - country_list.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
Source for application variables - strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, AndroidListViewActivity!</string>
<string name="app_name">AndroidListView</string>
</resources>
Source for application manifest - AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.as400samplecode" android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="15" />
<application android:icon="@drawable/ic_launcher"
android:label="@string/app_name" android:theme="@android:style/Theme.Light">
<activity android:name=".AndroidListViewActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
References
No comments:
Post a Comment
NO JUNK, Please try to keep this clean and related to the topic at hand.
Comments are for users to ask questions, collaborate or improve on existing.