Difference between revisions of "Android: ListView"

From Ittichai Chammavanijakul's Wiki
Jump to navigation Jump to search
Line 59: Line 59:
 
* Use <font face="monospace">setListAdapter</font> to set the list adapter wrapping an array of strings.
 
* Use <font face="monospace">setListAdapter</font> to set the list adapter wrapping an array of strings.
 
* To capture change, <font face="monospace">use onListItemClick</font>.
 
* To capture change, <font face="monospace">use onListItemClick</font>.
 +
* The <font face="monospace">android.R.layout.simple_list_item_1</font> provides the standard Android list row: big font, a lot of padding, and white text.
 +
* Alternate options:
 +
** <font face="monospace">android.R.layout.simple_list_item_single_choice</font>
 +
** <font face="monospace">android.R.layout.simple_list_item_multiple_choice</font>
 +
(Use <font face="monospace">getCheckedItemPositions</font> to capture checked position.)
 +
 +
* android.R.layout.simple_list_item_single_choice
 +
<source lang="java">
 +
setListAdapter(new ArrayAdapter<String>(this,
 +
android.R.layout.simple_list_item_single_choice, items));
 +
</source>
 +
 +
https://lh4.googleusercontent.com/_vH60i-IVw0M/TYvyLfCHM9I/AAAAAAAAC58/Aw2oakqOQTQ/s400/img_%202011-03-24_03.gif
 +
 +
 +
* android.R.layout.simple_list_item_multiple_choice
 +
<source lang="java">
 +
setListAdapter(new ArrayAdapter<String>(this,
 +
android.R.layout.simple_list_item_multiple_choice, items));
 +
</source>
 +
 +
https://lh6.googleusercontent.com/_vH60i-IVw0M/TYvyX-qH4NI/AAAAAAAAC6E/G09MoR_IuY4/s400/img_%202011-03-24_04.gif

Revision as of 20:41, 24 March 2011

img_%202011-03-24_01.gif

<source lang="java"> package com.android.sample;

import android.app.ListActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.TextView;

public class ListView extends ListActivity { TextView selection; String[] items = { "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory", "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde" };

@Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.list_view); setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items)); selection = (TextView) findViewById(R.id.selection); }

public void onListItemClick(ListView parent, View v, int position, long id) { selection.setText(items[position]); } }

</source>

<source lang="java"> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/selection" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" /> </LinearLayout> </source>

  • Use setListAdapter to set the list adapter wrapping an array of strings.
  • To capture change, use onListItemClick.
  • The android.R.layout.simple_list_item_1 provides the standard Android list row: big font, a lot of padding, and white text.
  • Alternate options:
    • android.R.layout.simple_list_item_single_choice
    • android.R.layout.simple_list_item_multiple_choice

(Use getCheckedItemPositions to capture checked position.)

  • android.R.layout.simple_list_item_single_choice

<source lang="java"> setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, items)); </source>

img_%202011-03-24_03.gif


  • android.R.layout.simple_list_item_multiple_choice

<source lang="java"> setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, items)); </source>

img_%202011-03-24_04.gif