UI组件之AdapterView及其子类(五)ListView组件和ListActivity
时间: 2024-01-06 10:04:36 浏览: 73
ListView是Android中最常用的UI组件之一,用于展示具有固定结构的大量数据。它继承自AdapterView,可以通过Adapter来动态地显示数据。
ListView的特点是:每一行数据都是相同的布局,并且每个Item的高度是相同的。因此,我们可以利用ListView来展示一些比较简单的数据列表。
在使用ListView时,我们需要实现一个Adapter来提供数据,并且可以对ListView的Item进行自定义布局。以下是一个简单的使用ListView的例子:
```java
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private List<String> mDataList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = findViewById(R.id.list_view);
// 初始化数据
mDataList = new ArrayList<>();
for (int i = 0; i < 50; i++) {
mDataList.add("Item " + i);
}
// 创建适配器
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, mDataList);
// 设置适配器
mListView.setAdapter(adapter);
}
}
```
在这个例子中,我们使用了Android自带的ArrayAdapter作为ListView的适配器,并且使用了系统提供的简单列表项布局simple_list_item_1,将数据逐一展示在ListView中。
除了普通的ListView,Android还提供了一个ListActivity类,它是一个已经封装好的Activity,专门用来展示ListView。我们只需要继承ListActivity,实现一个适配器即可。以下是一个使用ListActivity的例子:
```java
public class MainActivity extends ListActivity {
private List<String> mDataList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 初始化数据
mDataList = new ArrayList<>();
for (int i = 0; i < 50; i++) {
mDataList.add("Item " + i);
}
// 创建适配器
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, mDataList);
// 设置适配器
setListAdapter(adapter);
}
}
```
在这个例子中,我们继承了ListActivity,并且在onCreate()方法中直接使用setListAdapter()方法设置适配器,省去了findViewById()和ListView的初始化过程。
阅读全文