<ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView>加入一个动态更新的数据
时间: 2023-12-06 16:45:19 浏览: 91
首先,你需要创建一个适配器(Adapter)来管理ListView中的数据。然后,你可以在代码中更新数据,并通过调用适配器的notifyDataSetChanged()方法来通知ListView更新显示。
以下是一个示例:
1. 创建一个适配器类Adapter:
```java
public class MyAdapter extends BaseAdapter {
private List<String> mData; // 数据源
public MyAdapter(List<String> data) {
mData = data;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView;
if (convertView == null) {
textView = new TextView(parent.getContext());
textView.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
textView.setPadding(16, 16, 16, 16);
} else {
textView = (TextView) convertView;
}
textView.setText(mData.get(position));
return textView;
}
// 更新数据源
public void updateData(List<String> newData) {
mData = newData;
notifyDataSetChanged();
}
}
```
2. 在Activity或Fragment中使用该适配器:
```java
public class MyActivity extends AppCompatActivity {
private ListView mListView;
private MyAdapter mAdapter;
private List<String> mData = new ArrayList<>();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
mListView = findViewById(R.id.list_view);
mAdapter = new MyAdapter(mData);
mListView.setAdapter(mAdapter);
// 初始化数据
for (int i = 0; i < 10; i++) {
mData.add("Item " + i);
}
mAdapter.notifyDataSetChanged();
// 动态更新数据
findViewById(R.id.btn_update).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
List<String> newData = new ArrayList<>();
for (int i = 0; i < 5; i++) {
newData.add("New Item " + i);
}
mAdapter.updateData(newData);
}
});
}
}
```
在按钮的点击事件中,我们创建一个新的数据源newData,并通过updateData()方法更新适配器的数据源,最后通过调用notifyDataSetChanged()方法来通知ListView更新显示。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)