android ListView布局之一(继承listActivity、使用arrayAdapter)
2014-01-22 17:01
671 查看
http://blog.csdn.net/chenzheng_java/article/details/6200009
使用ListView和arrayAdapter布局,是ListView布局中最为简单的一种,首先我们会建立一个组件用来显示数据,例如main.xml
[c-sharp] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<!-- 主界面本身就是一个显示组件 -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp"
>
</TextView>
Activity代码如下
[java] view
plaincopy
package cn.com.android.grid;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class listViewTest extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String data[] = getData();
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.main, data);
this.setListAdapter(arrayAdapter);// ArrayAdapter 继承自baseAdapter,baseAdapter又继承自ListAdapter
}
/**
* @author chenzheng_java
* @description 获取一个数组列表
*/
private String[] getData(){
String[] data = new String[100];
for (int i = 0; i < 100; i++) {
data[i] = "列表项" + i;
}
return data;
}
}
如果这里activity不想继承ListActivity,那么我们可以这样编写
[java] view
plaincopy
package cn.com.android.grid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ListViewTest2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView listView = new ListView(this);
listView.setAdapter(new ArrayAdapter<String>(this,R.layout.main,getData()));
setContentView(listView);
}
/**
* @author chenzheng_java
* @description 获取一个数组列表
*/
private String[] getData(){
String[] data = new String[100];
for (int i = 0; i < 100; i++) {
data[i] = "列表项" + i;
}
return data;
}
}
废话连篇:
两种实现办法写的代码差距很大,有很多初学者可能很晕。不过不要紧,我们一起看下ListActivity到底是怎么实现的。
代码摘录如下
[java] view
plaincopy
public class ListActivity extends Activity {
/**
* This field should be made private, so it is hidden from the SDK.
* {@hide}
*/
protected ListAdapter mAdapter;
/**
* This field should be made private, so it is hidden from the SDK.
* {@hide}
*/
protected ListView mList;
我们看到了,实际上当我们继承ListActivity时,实际上里面已经有一个从ListActivity中继承的listview了,所以千万别以为差距很大,本质上,实现的步骤是一摸一样的。你可以认为,android给你提供了一个免费的工具类。没什么稀奇的。
步骤上,还是三大步:
第一步:准备布局文件main.xml
第二步:获取数据 getData()
第三步:绑定数据源setListAdapter();
使用ListView和arrayAdapter布局,是ListView布局中最为简单的一种,首先我们会建立一个组件用来显示数据,例如main.xml
[c-sharp] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<!-- 主界面本身就是一个显示组件 -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp"
>
</TextView>
Activity代码如下
[java] view
plaincopy
package cn.com.android.grid;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class listViewTest extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String data[] = getData();
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.main, data);
this.setListAdapter(arrayAdapter);// ArrayAdapter 继承自baseAdapter,baseAdapter又继承自ListAdapter
}
/**
* @author chenzheng_java
* @description 获取一个数组列表
*/
private String[] getData(){
String[] data = new String[100];
for (int i = 0; i < 100; i++) {
data[i] = "列表项" + i;
}
return data;
}
}
如果这里activity不想继承ListActivity,那么我们可以这样编写
[java] view
plaincopy
package cn.com.android.grid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class ListViewTest2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView listView = new ListView(this);
listView.setAdapter(new ArrayAdapter<String>(this,R.layout.main,getData()));
setContentView(listView);
}
/**
* @author chenzheng_java
* @description 获取一个数组列表
*/
private String[] getData(){
String[] data = new String[100];
for (int i = 0; i < 100; i++) {
data[i] = "列表项" + i;
}
return data;
}
}
废话连篇:
两种实现办法写的代码差距很大,有很多初学者可能很晕。不过不要紧,我们一起看下ListActivity到底是怎么实现的。
代码摘录如下
[java] view
plaincopy
public class ListActivity extends Activity {
/**
* This field should be made private, so it is hidden from the SDK.
* {@hide}
*/
protected ListAdapter mAdapter;
/**
* This field should be made private, so it is hidden from the SDK.
* {@hide}
*/
protected ListView mList;
我们看到了,实际上当我们继承ListActivity时,实际上里面已经有一个从ListActivity中继承的listview了,所以千万别以为差距很大,本质上,实现的步骤是一摸一样的。你可以认为,android给你提供了一个免费的工具类。没什么稀奇的。
步骤上,还是三大步:
第一步:准备布局文件main.xml
第二步:获取数据 getData()
第三步:绑定数据源setListAdapter();
相关文章推荐
- android ListView布局之一(继承listActivity、使用arrayAdapter)
- android ListView布局之一(继承listActivity、使用arrayAdapter)
- 【Android基础】listview控件的使用(2)-------继承自ListActivity的普通listview
- 【Android基础】listview控件的使用(2)-------继承自ListActivity的普通listview
- 通过ListActivity使用ListView布局方法
- Android应用中使用TabHost组件继承TabActivity的布局方法
- android studio开发教程 ListActivity的2种使用方法:系统默认布局和自己定义布局
- 第四章--android核心组件之Activity与ListActivity中使用ListView的区别
- 【Android基础】listview控件的使用(4)-----自定义布局的listview的使用
- android 一个listview中不同行Item使用不同布局
- Android练习-----列表视图(ListView)(通过继承ListActivity实现列表视图)
- Android 解决ListView在使用多个布局的同时使用convertView进行缓存时导致ListView下面有空白的问题
- Android中ListActivity的使用和在ListView中添加图片文字
- Android之 ListActivity 的使用和在 ListView中添加图片文字
- 布局文件Android ListView入门知识--各种Adapter配合使用
- Android 中 ListAactivity 和Activity 使用ListView 以及ArrayAdapter和SimpleAdapter参数详解
- Android:XListView使用AS默认继承的Activity报错
- Android中ListView同过自定义布局并使用SimpleAdapter的方式实现数据的绑定
- Android之ListView使用方法-ArrayAdapter-SimpleCursorAdapter-SimpleAdapter-BaseAdapter
- android ListView使用的三种方法汇总(通过继承BaseAdapter,使用SimpleAdapter和SimpleCursorAdapter)