Custom ListView item
Description
The following code shows how to Custom ListView item.
Example
res\layout\row.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dip">
<ImageView
android:id="@+id/leftimage"
android:layout_width="32dip"
android:layout_height="32dip"
/>
<ImageView
android:id="@+id/rightimage"
android:layout_width="32dip"
android:layout_height="32dip"
android:layout_alignParentRight="true"
/>
<TextView
android:id="@+id/line1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/rightimage"
android:layout_toRightOf="@id/leftimage"
android:layout_centerVertical="true"
android:gravity="center_horizontal"
/>
</RelativeLayout>
MainActivity.java
package com.java2s.myapplication3.app;
/*from w ww . ja va2s . com*/
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView list = new ListView(this);
setContentView(list);
CustomAdapter adapter = new CustomAdapter(this,
R.layout.row,
R.id.line1,
new String[] {"XML","HTML","CSS","Javascript"});
list.setAdapter(adapter);
}
private static class CustomAdapter extends ArrayAdapter<String> {
public CustomAdapter(Context context, int layout, int resId, String[] items) {
//Call through to ArrayAdapter implementation
super(context, layout, resId, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if(row == null) {
row = LayoutInflater.from(getContext()).inflate(R.layout.row, parent, false);
}
String item = getItem(position);
ImageView left = (ImageView)row.findViewById(R.id.leftimage);
ImageView right = (ImageView)row.findViewById(R.id.rightimage);
TextView text = (TextView)row.findViewById(R.id.line1);
left.setImageResource(R.drawable.ic_launcher);
right.setImageResource(R.drawable.ic_launcher);
text.setText(item);
return row;
}
}
}