Android Listview dongtai
时间: 2023-09-02 18:05:53 浏览: 146
动态展示数据的ListView在Android开发中非常常见,以下是一个简单的实现步骤:
1.创建一个ListView控件,可以在xml文件中进行创建或者在Java代码中动态创建。
2.创建一个适配器,将数据与ListView绑定。适配器需要继承BaseAdapter类,并重写以下四个方法:
- getCount():返回ListView中的数据项个数。
- getItem():返回指定位置的数据项。
- getItemId():返回指定位置的数据项ID。
- getView():返回指定位置的数据项视图。
3.将适配器设置给ListView控件,调用setAdapter()方法。
4.在适配器中getView()方法中,可以使用LayoutInflater来加载数据项的布局文件,并将数据填充到布局中。
5.在Activity中,通过获取数据源并更新适配器来动态展示数据。
下面是一个示例代码:
MainActivity.java
```
public class MainActivity extends AppCompatActivity {
private ListView mListView;
private MyAdapter mAdapter;
private List<String> mDataList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initView();
}
private void initData() {
mDataList = new ArrayList<>();
for (int i = 0; i < 20; i++) {
mDataList.add("Item " + i);
}
}
private void initView() {
mListView = findViewById(R.id.list_view);
mAdapter = new MyAdapter();
mListView.setAdapter(mAdapter);
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return mDataList.size();
}
@Override
public Object getItem(int position) {
return mDataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_list_view, null);
viewHolder = new ViewHolder();
viewHolder.mTextView = convertView.findViewById(R.id.text_view);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
String data = mDataList.get(position);
viewHolder.mTextView.setText(data);
return convertView;
}
private class ViewHolder {
private TextView mTextView;
}
}
}
```
activity_main.xml
```
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
```
item_list_view.xml
```
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp"/>
```
阅读全文