Android listView 繼承ListActivity的用法

Android listView 繼承ListActivity的用法 android

在手機中常常有列表方式。若是Activity中只有惟⼀⼀個List(這也是一般的狀況),能夠繼
承ListActivity來實現。咱們用兩個例子來學習List。
List例子⼀:利用Android自帶的List格式
步驟⼀:Android XML文件
ListActivity是⼀個全屏的list,若是咱們須要定製layout,例如加上⼀個button之類的什麼的,咱們
需將ListView 的id設置爲「@android:id/list」,咱們能夠同getListView來獲取ListView的對象,下面
是XML的例子:
.... 
<LinearLayout ...> <!-- 在這裏我曾忘了設定android:orientation="vertical" ,結果沒法顯
示第二個widget,查了我好久--> 
...<Button … />  <--在這個例子中,咱們在加入了⼀個Button,所以採用定製Layout的
方式,即設置 @android :id/list  --> 
    <ListView android:id=" @android :id/list "  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:drawSelectorOnTop="false" /> 
</LinearLayout>
步驟二:源代碼
1)使用String數組設置List的item內容
例如:String[] items={"One", "Two", "Three", "Four", "Five"};
2)在onCreate中將item的內容加入,使用setListAdapter並設置List的格式
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));
ArrayAdapter有三個參數,第⼀是對象,第二是List的格式,第三個是List的內容。對於格式這個
例子採用了Android自定義的 幾種格式,後面會具體列出。android.R.layout.simple_list_item_1
是TextView的方式,採用big font,是最爲常見的方式。
3)點擊List的Callback方法
因爲集成了ListActivity,能夠直接使用回調函數onListItemClick
4)例子
public class BeginingBook extends ListActivity { 
    String[] items={"One","Two","Three","Four","Five","Six","Serven"}; 
    private Button button; 
     
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main);
        setListAdapter(new ArrayAdapter<String>( this ,
android.R.layout.simple_list_item_1, items )); 
        button =(Button)findViewById(R.id.chapter7); 
    } 
    public void onListItemClick (ListView parent,View v, int position, long id){ 
        button.setText(items[position]); //position是點擊的item的序號,從0開始。 
    } 
}
5)不一樣的呈現模式
咱們修改ArrayAdapter的第二個顯示的模式。另外能夠經過getListView()獲取ListView的對象,設
置ListView 的⼀些屬性,ListView的⼀些經常使用方法
:setChoiceMode(),getCheckedItemPositions() 。
setListAdapter (new
ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice
 ,items)); 
getListView().setChoiceMode (ListView.CHOICE_MODE_SINGLE); //代表有選項,
若是不設置,缺省爲none,即咱們點擊後仍無反應
setListAdapter (new
ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice
 ,items)); 
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //注意,只要點
擊就會觸發Callback,而不過是的點擊後選上仍是變爲取消。
setListAdapter (new
ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked ,items)); 
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

下面,第⼀個圖爲android.R.layout.simple_list_item_1,接着依次爲上面三種格式。 數組

List例子二:自定義的List格式(來自Tutorial)
步驟⼀:創建⼀個描述list item格式的XML文件
<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
           android:id="@+id/rowtv1"  
           android:layout_width="fill_parent"  
           android:layout_height="wrap_content"  
           android:padding="10dip"  
           android:textSize="16dip">  
</TextView>
步驟二:經過XML定義item
在第⼀個例子中,咱們使用String[]來定製item。可是以前,咱們也學習到,爲了適合多種語言,
最要這些信息都在XML文件中定義,只需更換XML文件,就能夠適配不一樣的語言。咱們
在string.xml文件中增長相關的定義:
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    … … 
    <string-array name ="countries_arry"> 
        <item> Bharain </item> 
        <item> Bangladesh </item> 
        <item>Barbados </item> 
        <item>Belarus </item> 
        <item>Belgium </item> 
        <item>Belize </item> 
        <item>Benin </item> 
   </string-array> 
</resources>
步驟三:源代碼
public class Chapter7Test2 extends ListActivity {
    public void onCreate (Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 

       String[] ide

contries=getResources().getStringArray(R.array.countries_arry);          setListAdapter(new ArrayAdapter<String>(this, R.layout.chapter_7_test2_list, contries));          ListView lv=getListView ();          lv.setTextFilterEnabled(true);          lv.setOnItemClickListener (new OnItemClickListener(){              public void onItemClick(AdapterView<?> parent, View view, int position, long id){                  //Toast.makeText(Chapter7Test2.this, ((TextView) view).getText(), Toast.LENGTH_SHORT).show();                  Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();              }          });     }  } Toast   上面給出Toast的例子。Toast.makeText(對象,文本內容,格式).show()。
相關文章
相關標籤/搜索