由于基础不是很好,所以我就直接找案列来具体理解ListView,案例代码如下:
public class MainActivity extends Activity {
private ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
//新建一个Listview对象
listview = new ListView(this);
//把数据分配到LstView上
listview.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getData()));
//把ListView画出来
setContentView(listview);
}
//数据的来源
private List<String> getData() {
List<String> data = new ArrayList<String>();
data.add("-------");
data.add("+++++++");
data.add("*******");
data.add("///");
return data;
}
使用LisView要实现三个步骤:
一:要有数据(字符,图片或者基本组件皆可);
二:适配器把数据放到ListView的中介上;
三:显示ListView上的内容。
然后我们想想ListView跟ListActivity又有什么关系呢?
先来看看下面的代码吧:
public class ArrayAdapterDemo extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
String[] strs = {"-------","+++++++","*******","///"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,strs);
setListAdapter(adapter);
}
}
这小段代码同样能实现上面的功能,这时候我们该想到些什么呢?
第二段代码连ListView都没有出现就实现了它的功能,很明显ListActivity里必定包涵了ListView,新的类继承了ListView内的ListView。利用第二种方法,我们连setContentView都可以省掉。
------------------------------------------------------------------------