When you click on the items an AlertDialog box appears indicating what you clicked on.
NOTE: the XML files below should go in res/layout folder of your project.
Main.xml Make sure to make change to package name!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.daish.viewtest.TestListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>row.xml This layout defines how each row is going to look like. This has a picture and name
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/icon"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="10dp"
android:layout_marginTop="4dp"
android:src="@drawable/ic_launcher" >
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp" >
</TextView>
</LinearLayout>MainActivity (beginning of program)
import android.app.Activity;
import android.os.Bundle;
public class ViewTestActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}TestListView Class extending ListView
package com.daish.viewtest;
import android.app.AlertDialog;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class TestListView extends ListView
{
private ArrayAdapter<String> test;
String[] testItems = {"Larry", "John", "Gary"};
//If built programmatically
public TestListView(Context context)
{
super(context);
init();
}
//This example uses this method since being built from XML
public TestListView(Context context, AttributeSet attrs)
{
super(context, attrs);
init();
}
//Build from XML layout
public TestListView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
init();
}
public void init()
{
test = new ArrayAdapter<String>(getContext(),R.layout.row, R.id.label , testItems);
setAdapter(test);
setOnItemClickListener(new ListSelection());
}
private class ListSelection implements OnItemClickListener
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id)
{
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setMessage("You pressed item #" + (position+1));
builder.setPositiveButton("OK", null);
builder.show();
}
}
}
The code above should give you this:

No comments:
Post a Comment