Android——列表視圖(ListView)

列表視圖是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();
	}
		

}
相關文章
相關標籤/搜索