Android学习笔记:Activity-ListView
在手機中經常有列表方式。如果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[] 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()。
總結
以上是生活随笔為你收集整理的Android学习笔记:Activity-ListView的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 标记化结构初始化语法(C语言)
- 下一篇: Android学习笔记:ScrollVi