Difference between revisions of "Android: ListView"

From Ittichai Chammavanijakul's Wiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 65: Line 65:
 
(Use <font face="monospace">getCheckedItemPositions</font> to capture checked position.)
 
(Use <font face="monospace">getCheckedItemPositions</font> to capture checked position.)
  
* android.R.layout.simple_list_item_single_choice
+
* Single-select mode
 
<source lang="java">
 
<source lang="java">
 
setListAdapter(new ArrayAdapter<String>(this,
 
setListAdapter(new ArrayAdapter<String>(this,
Line 71: Line 71:
 
</source>
 
</source>
  
https://lh4.googleusercontent.com/_vH60i-IVw0M/TYvyLfCHM9I/AAAAAAAAC58/Aw2oakqOQTQ/s400/img_%202011-03-24_03.gif
+
https://lh6.googleusercontent.com/_vH60i-IVw0M/TYvyX-qH4NI/AAAAAAAAC6E/G09MoR_IuY4/s400/img_%202011-03-24_04.gif
 
 
  
* android.R.layout.simple_list_item_multiple_choice
+
* Multiple-select mode
 
<source lang="java">
 
<source lang="java">
 
setListAdapter(new ArrayAdapter<String>(this,
 
setListAdapter(new ArrayAdapter<String>(this,
Line 80: Line 79:
 
</source>
 
</source>
  
https://lh6.googleusercontent.com/_vH60i-IVw0M/TYvyX-qH4NI/AAAAAAAAC6E/G09MoR_IuY4/s400/img_%202011-03-24_04.gif
+
https://lh4.googleusercontent.com/_vH60i-IVw0M/TYvyLfCHM9I/AAAAAAAAC58/Aw2oakqOQTQ/s400/img_%202011-03-24_03.gif
 +
 
 +
 
 +
[[Category:Android_Sample_Codes]]

Latest revision as of 09:00, 25 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.)

  • Single-select mode

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

img_%202011-03-24_04.gif

  • Multiple-select mode

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

img_%202011-03-24_03.gif