Android列表ListView用NotifyDataSetChanged实现动态更新
2015-12-01 11:07
471 查看
转载请标明出处:/article/8809957.html
本文出自【吴孝城的CSDN博客】
在Android中的ListView列表中添加列时,用NotifyDataSetChanged实现动态更新
需要编辑的内容如下
activity_main.xml
源码下载
本文出自【吴孝城的CSDN博客】
在Android中的ListView列表中添加列时,用NotifyDataSetChanged实现动态更新
需要编辑的内容如下
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ListView android:id="@+id/list_item" android:layout_width="match_parent" android:layout_height="wrap_content"/> <android.support.design.widget.FloatingActionButton android:id="@+id/add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:src="@android:drawable/ic_input_add" /> </FrameLayout>item_list.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ImageView android:id="@+id/itemIcon" android:layout_width="40dp" android:layout_height="40dp" android:src="@mipmap/ic_launcher"/> <TextView android:id="@+id/itemText" android:layout_width="match_parent" android:layout_height="40dp" android:text="Hello World" android:textSize="20sp"/> </LinearLayout>MainActivity.java
package cn.wuxiaocheng.notifydatasetchanged; import android.content.Context; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ListView; import java.util.LinkedList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView listView; private List<HelloBean> mdata = null; private HelloAdapter madapter = null; private Context mcontext = null; private int i = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mcontext = MainActivity.this; listView = (ListView) findViewById(R.id.list_item); mdata = new LinkedList<HelloBean>(); madapter = new HelloAdapter((LinkedList<HelloBean>) mdata, mcontext); listView.setAdapter(madapter); final FloatingActionButton button = (FloatingActionButton) findViewById(R.id.add); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { madapter.add(new HelloBean(R.mipmap.ic_launcher, "增加的内容" +i)); i++; } }); } }HelloBean.java
package cn.wuxiaocheng.notifydatasetchanged; public class HelloBean { private int icon; private String textView; public HelloBean(int icon, String textView) { this.icon = icon; this.textView = textView; } public int getIcon() { return icon; } public void setIcon(int icon) { this.icon = icon; } public String getTextView() { return textView; } public void setTextView(String textView) { this.textView = textView; } }HelloAdapter.java
package cn.wuxiaocheng.notifydatasetchanged; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.LinkedList; public class HelloAdapter extends BaseAdapter { private LinkedList<HelloBean> mData; private Context mContext; public HelloAdapter(LinkedList<HelloBean> mData, Context mContext){ this.mData = mData; this.mContext = mContext; } @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) { ViewHolder viewHolder = null; if (convertView == null){ convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list, parent, false); viewHolder = new ViewHolder(); viewHolder.imageView = (ImageView) convertView.findViewById(R.id.itemIcon); viewHolder.textView = (TextView) convertView.findViewById(R.id.itemText); convertView.setTag(viewHolder); }else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.imageView.setImageResource(mData.get(position).getIcon()); viewHolder.textView.setText(mData.get(position).getTextView()); return convertView; } private class ViewHolder{ ImageView imageView; TextView textView; } public void add(HelloBean data){ if (mData == null) { mData = new LinkedList<>(); } mData.add(data); //删除的话用remove notifyDataSetChanged(); } }运行效果如下
源码下载
相关文章推荐
- 图片裁剪问题
- Android Studio如何引用外部Library工程
- android以application/json流的方式提交数据
- android应用启动流程
- Android studio 如何打jar包
- android:persistent
- android 屏幕单击位置测试
- Android调用系统裁剪图片模糊问题
- Android中大小两种字体对齐 -- 实现上或者下对齐的解决方法
- android用户头像截取
- Android中ListView的简单使用
- android 拍照预览
- Android基础-EditText键盘的显示与隐藏
- Android DiskLruCache 摘录
- android下的事件分发
- android gradle compile(一)
- Android的Canvas、Bitmap、Drawable和Paint
- android 设置系统屏幕亮度
- MTK android Driver:UART介绍
- Android-DialogFragment对话框之登录