這次我們來學習ListView控制項,ListView控制項可以將資料以行的形式展示出來,並可以對單項的單擊進行事件監聽,妖怪們一起一個一個抓唐僧師徒了,什麼?你不喜歡看西遊記?喜歡看水滸傳,媽呀!108將,你想讓我打字打死啊?呵呵,玩笑.
讓我們來看一下main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:layout_height="wrap_content" android:id="@+id/listView"
android:layout_width="match_parent"></ListView>
<TextView android:layout_height="wrap_content"
android:layout_width="fill_parent" android:text="@string/hello"
android:id="@+id/text"></TextView>
</LinearLayout>
主要Activity的java代碼:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class ButtonDemoActivity extends Activity implements OnItemClickListener
{
private TextView text = null;
private String[] item = { "唐僧", "孫悟空 ", "豬八戒", "沙和尚" };
private ListView listView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 通過ID尋找到main.xml中的TextView控制項
text = (TextView) findViewById(R.id.text);
// 通過ID尋找到main.xml中的ListView控制項
listView = (ListView) findViewById(R.id.listView);
//設定一個Array適配器,將數組資料放入適配器中
ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, item);
//對ListView進行適配
listView.setAdapter(adapter);
//ListView中事件選擇的監聽
listView.setOnItemClickListener(this);
}
private void updateText(String string)
{
// 將文本資訊設定給TextView控制項顯示出來
text.setText(string);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3)
{
String str = "這次妖精把" + item[position] + "抓住了!";
updateText(str);
}
}
其實有很多控制項都會用到適配器模式,如Spinner,ListView,GridView等,而Android可以設定各種類型的適配器,如:數組適配器,List適配器還有基本適配器, 就好比妖怪要抓唐僧,他得知道師徙幾人吧?你抓了我師傅,那些徙弟肯定不答應.呵呵,這些都是題外話了.好了,這一章也結束了.
摘自:kangkangz4的專欄