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()。