在手機中經(jīng)常有列表方式。如果Activity中只有唯一一個List(這也是通常的情況),可以繼承ListActivity來實現(xiàn)。我們用兩個例子來學(xué)習(xí)List。
List例子一:利用Android自帶的List格式
步驟一:Android XML文件
ListActivity是一個全屏的list,如果我們需要定制layout,例如加上一個button之類的什么的,我們需將ListView的id設(shè)置為“@android:id/list”,我們可以同getListView來獲取ListView的對象,下面是XML的例子:
....
<LinearLayout ...>
<!-- 在這里我曾忘了設(shè)定android:orientation="vertical" ,結(jié)果無法顯示第二個widget,查了我很久-->
...<Button … /> <--在這個例子中,我們在加入了一個Button,因此采用定制Layout的方式,即設(shè)置@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數(shù)組設(shè)置List的item內(nèi)容
例如:String[] items={"One", "Two", "Three", "Four", "Five"};
2)在onCreate中將item的內(nèi)容加入,使用setListAdapter并設(shè)置List的格式
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));
ArrayAdapter有三個參數(shù),第一是對象,第二是List的格式,第三個是List的內(nèi)容。對于格式這個例子采用了Android自定義的幾種格式,后面會具體列出。android.R.layout.simple_list_item_1是TextView的方式,采用big font,是最為常見的方式。
3)點擊List的Callback方法
由于集成了ListActivity,可以直接使用回調(diào)函數(shù)onListItemClick
4)例子
public class BeginingBook extends ListActivity {
String[] items={"One","Two","Three","Four","Five","Six","Serven"};
private Button button;
/** Called when the activity is first created. */
@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)不同的呈現(xiàn)模式
我們修改ArrayAdapter的第二個顯示的模式。另外可以通過getListView()獲取ListView的對象,設(shè)置ListView的一些屬性,ListView的一些常用方法:setChoiceMode(),getCheckedItemPositions() 。
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,items));
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
//表明有選項,如果不設(shè)置,缺省為none,即我們點擊后仍無反應(yīng)
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice ,items));
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
//注意,只要點擊就會觸發(fā)Callback,而不過是的點擊后選上還是變?yōu)槿∠?/span>
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./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。但是之前,我們也學(xué)習(xí)到,為了適合多種語言,最要這些信息都在XML文件中定義,只需更換XML文件,就可以適配不同的語言。我們在string.xml文件中增加相關(guān)的定義:
<?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(對象,文本內(nèi)容,格式).show()。
謠言的兩個要求
需要發(fā)布的源頭和傳遞的途徑。將兩個小故事:
昨天下午,有位同事(今年也30了,研究生畢業(yè),從年齡和學(xué)歷都是比較成熟了)說收到消息:日本地震是核試驗失敗導(dǎo)致,她覺得可以信,因為美軍在千里之外也受到輻射。聽了就知道是謠言,因此日本輻射的時間是核電站發(fā)生氫氣爆炸的時間一致的,至于美軍,地震海嘯后,美國就是派兩航母過去。開始不明白航母有什么用,后來說航母的直升飛機協(xié)助救人。一派老大哥罩這小弟的樣子,后來核輻射,兩個航母就不知道躲哪里,威威地出來,迅速地閃了。有兩個國家沒有原子彈,但是有制造原子彈的能力,一個是南非,白人政府在下臺之前銷毀的核彈,一個是日本,日本核能很發(fā)達,能夠在短期內(nèi)生產(chǎn)原子彈。日本目前沒有任何理由去制造,這太小看日本的科技技術(shù),也太無視人家的政治智慧,這種做法百害無一利。
今天最大的謠言就是搶購鹽??赡芘潞K廴?,在蘇丹紅,三鹿XX,瘦肉精面前如此淡定的我們,有什么可怕呢。實際上中國大部分的鹽都是井礦鹽,沿海是鹽場賺錢還是養(yǎng)殖場賺錢,已經(jīng)沒幾個海鹽場,所以這些就是借機炒作的無良商販或者投機倒把的游資行為,這種興風(fēng)作浪趁火打劫的行為應(yīng)給予譴責。
制造流言的人以最惡毒地心態(tài)去制造謠言,并迎合了很多缺乏自我思考能力的狹窄和偏激的歷史觀和民族觀的人。以卑鄙無恥為源頭,以愚昧無知為途徑,當這兩結(jié)合起來的時候,非常令人失望,悲觀,甚至恐懼。
相關(guān)鏈接:
我的Android開發(fā)相關(guān)文章
|