ListView,ListActivity的认识及简单使用

                                                       listview简单使用

ListView可以说是android中,最常见得组件了,几乎所有的程序都会用到,由于手机屏幕有限,因此当我们需要展示大量数据的时候,就可借助ListViewListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到频幕内,同时屏幕上原有的数据会滚动出屏幕。

下面就简单介绍ListView的使用:

xml文件中添加ListView组件:

<ListView 

    android:id="@+id/listview1"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" 

    android:divider="#ffffaa"

    android:dividerHeight="20dp"

    android:drawSelectorOnTop="true"

       android:entries="@array/names"

></ListView>

 

由于ListView要显示大量的数据,因此就应该提供数据, (这些数据可以是从网上下载的, 数据库读取的等)在MainActivity 中定义数组,并 设定数据适配器, 

适配器:因为数组中的数据是无法直接在ListView因此需要借助一个数据适配器完成,最常用的是ArrayAdapter (这一次先使用ArrayAdapter,后面会陆续使用别的),

 ArrayAdapter< String > adapter = new ArrayAdapter<String>(context, resource, textViewResourceId) 

对于上面的数据适配器,由于我要显示的数据都是字符串,因此将其泛型指定为String,上面的ArrayAdapter有三个参数,第一个是上下文,第二个参数:ListView子项的布局id, (这里使用系统自带的 R.android.layout.simple_item_1)其中只有一个TextView用于显示文本,创建好了适配器,需要还需要调用ListView的setAdapter方法将建好的适配器对象传递过去,这样ListView和数据之间的关联就建立完成了。

主要代码如下:

public class MainActivity extends Activity {

private ListView listview = null;

//创建数据源

private String[] data = { "Apple""Banana""Orange""Watermelon",

"Pear""Grape""Cherry""StraWbrry" };

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(

MainActivity.this,

android.R.layout.simple_expandable_list_item_1data);

listview = (ListView) findViewById(R.id.listview1);

listview.setAdapter(adapter);// 将数据适配器对象传递到ListView

}

}

运行结果如下:

这样ListView的简单使用就完成了。

 

ListView的单击事件使用

使用ItemClickListener ()方法来注册监听器,

public void onItemClick(AdapterView<?> parent, View view, int position,

long id)

OnItemClickListener()中一共有三个参数,这里通过如下代码获得参数的信息:

public void onItemClick(AdapterView<?> parent, View view, int position,

long id) {

System.out.println("--------->parent:" + parent.getClass());

System.out.println("--------->view:" + view.getClass());

System.out.println("--------->position:" + position);

System.out.println("--------->id:" + id);

}

测试:(这里当我点击Banana时):输出如下结果:


分析可以得出:

parent是显示信息的ListView

view:承载列表中信息的组件(如Banana需要一个TextView来显示)

position:列表项的位置

id:表示列表项的序列号

下面获取每一个列表项的数据

TextView tv = (TextView) view;

Toast.makeText(MainActivity.this, tv.getText(), 2000).show();

运行结果如下:


---------------------------------------------------------------------------------------------------------------------

ListActivity的使用

如果只在屏幕上显示一个ListView可以使用ListActivity 否则需要自定义。

public classListActivity extends Activity

ListView提供了一个列表项视图来显示数据,可以绑定指定的数据源,比如数组或数据库的游标,给使用者提供一种选项选择

ListActivity的布局默认是一个单一的在屏幕中心的全屏幕的列表,

具体操作:

创建一个类继承自ListActivity ,然后创建数据源,以及数据适配器,与上面方式一致。

代码如下:

public class MyActivity extends ListActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

String[] names = { "AA""BB""CC""DD" };

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_list_item_1, names);

ListView listview = getListView(); // 得到ListView的对象

listview.setAdapter(adapter);

}

然后就完成了ListView的配置,这时需要在AndroidMainifest.xml中将启动项改为当前的Activity

如下:

 android:name="com.example.listview2.MyActivity"

在模拟器上运行如下:

 

对于其单击事件与上面类似。

ListView的更多用法,将持续更新。。。。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值