列表視圖是android中最經常使用的一種視圖組件,它以垂直列表的形式列出須要顯示的列表項。在android中有兩種方法向屏幕中添加列表視圖:一種是直接使用ListView組件建立;另一種是讓Activity繼承ListActivity實現。下面分別介紹這兩種方法:java
1、直接使用ListView組件建立android
在佈局文件中首先添加ListView數組
代碼以下:app
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:entries="@array/cytpe" > </ListView> </LinearLayout>
這裏使用了名稱爲ctype的數組資源,所以咱們要在res/values目錄中建立一個定義的數組資源的xml文件arrays.xml代碼以下:ide
<?xml version="1.0" encoding="UTF-8"?> <resources> <string-array name="cytpe"> <item>情景模式</item> <item>主題模式</item> <item>手機</item> <item>程序管理</item> <item>通話設置</item> <item>鏈接功能</item> </string-array> </resources>
直接運行就能夠看到以下所示的列表視圖:佈局
下面經過適配器來指定列表項來建立ListViewthis
佈局代碼:spa
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@drawable/ic_launcher" android:dividerHeight="3px" android:footerDividersEnabled="false" android:headerDividersEnabled="false" > </ListView> </LinearLayout>
Java代碼:code
package com.basillee.blogdemo; import java.lang.annotation.Retention; import java.util.List; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView listView=(ListView)findViewById(R.id.listView1); ArrayAdapter<CharSequence>adapter=ArrayAdapter.createFromResource(this,R.array.cytpe,android.R.layout.simple_list_item_single_choice); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View arg1, int pos, long id) { String result=parent.getItemAtPosition(pos).toString(); Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show(); } }); } }
2、讓Activity繼承ListActivity實現:xml
若是程序的窗口僅僅須要顯示一個列表,則能夠直接讓Activity繼承ListActivity來實現。繼承ListActivity的類中無需調用setContentView方法來顯示頁面,而是能夠直接爲其設置適配器,從而顯示一個列表。
廢話少說直接看看代碼你們就都懂了:
package com.basillee.blogdemo; import java.lang.annotation.Retention; import java.util.List; import android.os.Bundle; import android.app.Activity; import android.app.ListActivity; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.Toast; public class MainActivity extends ListActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String []cytpeStrings=new String[]{"情景模式","主題模式","手機","程序管理"}; ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,cytpeStrings); setListAdapter(adapter); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub super.onListItemClick(l, v, position, id); String resultString=l.getItemAtPosition(position).toString(); Toast.makeText(getApplicationContext(), resultString, Toast.LENGTH_LONG).show(); } }