首页 > 代码库 > Android——列表视图(ListView)
Android——列表视图(ListView)
列表视图是android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表项。在android中有两种方法向屏幕中添加列表视图:一种是直接使用ListView组件创建;另外一种是让Activity继承ListActivity实现。下面分别介绍这两种方法:
一、直接使用ListView组件创建
在布局文件中首先添加ListView
代码如下:
<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代码如下:
<?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>
直接运行就可以看到如下所示的列表视图:
下面通过适配器来指定列表项来创建ListView
布局代码:
<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代码:
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(); } }); }}
二、让Activity继承ListActivity实现:
如果程序的窗口仅仅需要显示一个列表,则可以直接让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(); } }
Android——列表视图(ListView)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。