Android Custom List View
Android Custom List View Example
This example is to create a custom list view in an android
application, there will be a fruit list with its image icons
- · Create a new project in android IDE
- · Copy your custom list image icon in folder
- res/drawable-mdpi
- · Now create a layout
- res/layout/list_fruit.xml
- res/layout/list_module.xml
- · Create android java files
- src/com/customlist/example/ListFruitActivity.java
- src/com/customlist/example/ListMobileActivity.java
- src/com/customlist/example/adapter/MobileArrayAdapter.java
package com.customlist.example;
import
android.app.ListActivity;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.AdapterView;
import
android.widget.ArrayAdapter;
import
android.widget.ListView;
import
android.widget.TextView;
import
android.widget.Toast;
import
android.widget.AdapterView.OnItemClickListener;
public class
ListFruitActivity extends ListActivity {
static final String[] FRUITS =
new String[] { "Apple", "Avocado", "Banana",
"Blueberry",
"Coconut", "Durian", "Guava",
"Kiwifruit",
"Jackfruit",
"Mango", "Olive", "Pear",
"Sugar-apple" };
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
// no more
this
//
setContentView(R.layout.list_fruit);
setListAdapter(new
ArrayAdapter<String>(this, R.layout.list_fruit,
FRUITS));
ListView
listView = getListView();
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.makeText(getApplicationContext(),
((TextView)
view).getText(), Toast.LENGTH_SHORT).show();
}
});
}
}
|
File:
ListFruitActivity.java
package package
com.customlist.example;
import
com.mkyong.android.adaptor.MobileArrayAdapter;
import
android.app.ListActivity;
import
android.os.Bundle;
import
android.widget.ArrayAdapter;
import
android.widget.ListView;
import
android.widget.Toast;
import
android.view.View;
public class
ListMobileActivity extends ListActivity {
static final String[]
MOBILE_OS = new String[] { "Android", "iOS",
"WindowsMobile",
"Blackberry"};
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
//setListAdapter(new
ArrayAdapter<String>(this, R.layout.list_mobile,
// R.id.label,
MOBILE_OS));
setListAdapter(new
MobileArrayAdapter(this, MOBILE_OS));
}
@Override
protected void
onListItemClick(ListView l, View v, int position, long id) {
//get selected
items
String
selectedValue = (String) getListAdapter().getItem(position);
Toast.makeText(this,
selectedValue, Toast.LENGTH_SHORT).show();
}
}
|
File:
ListMobileActivity.java
package com.customlist.example.adaptor;
import
com.mkyong.android.R;
import
android.content.Context;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.ArrayAdapter;
import
android.widget.ImageView;
import
android.widget.TextView;
public class
MobileArrayAdapter extends ArrayAdapter<String> {
private final Context context;
private final String[] values;
public
MobileArrayAdapter(Context context, String[] values) {
super(context,
R.layout.list_mobile, values);
this.context =
context;
this.values =
values;
}
@Override
public View getView(int
position, View convertView, ViewGroup parent) {
LayoutInflater
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView =
inflater.inflate(R.layout.list_mobile, parent, false);
TextView
textView = (TextView) rowView.findViewById(R.id.label);
ImageView imageView
= (ImageView) rowView.findViewById(R.id.logo);
textView.setText(values[position]);
// Change icon
based on name
String s =
values[position];
System.out.println(s);
if
(s.equals("WindowsMobile")) {
imageView.setImageResource(R.drawable.windowsmobile_logo);
} else if
(s.equals("iOS")) {
imageView.setImageResource(R.drawable.ios_logo);
} else if
(s.equals("Blackberry")) {
imageView.setImageResource(R.drawable.blackberry_logo);
} else {
imageView.setImageResource(R.drawable.android_logo);
}
return
rowView;
}
}
|
File: MobileArrayAdapter.java
XML Layout Files:
There are two layout files
- · list_fruit.xml
- · list_mobile.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="20sp" >
</TextView>
|
File:
list_fruit.xml
<?xml
version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp" >
<ImageView
android:id="@+id/logo"
android:layout_width="50px"
android:layout_height="50px"
android:layout_marginLeft="5px"
android:layout_marginRight="20px"
android:layout_marginTop="5px"
android:src="@drawable/windowsmobile_logo" >
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:textSize="30px"
>
</TextView>
</LinearLayout>
|
File:
list_mobile.xml
<?xml
version="1.0" encoding="utf-8"?>
<resources>
<string
name="app_name">ListMobileOS</string>
</resources>
|
File:
strings.xml
Android Menifest File
Menifest file has multiple application activity
- · ListMobileActivity
- · ListFruitActivity
<?xml
version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.customlist.example "
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="Custom List
View"
android:name=".ListMobileActivity" >
<intent-filter >
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="Fruit List"
android:name=".ListFruitActivity"
>
</activity>
</application>
</manifest>
|
File:
AndroidMenifest.xml
Comments
Post a Comment