SQLIte数据库--ArrayAdapter适配器

来源:互联网 发布:淘宝开店会员名大全 编辑:程序博客网 时间:2024/06/06 02:30

在使用ListView时需要对其进行数据适配。为了实现这个功能,Android系统提供了一系列的适配器对ListView进行适配。可以将适配器理解为截面数据绑定。适配器就像显示器,把复杂的数据按人们易于接受的方式来展示。

这里主要介绍ArrayAdapter。

ArrayAdapter时候BaseAdapter的子类,开发者需要在构造方法里传入相应的参数即可适配数据。

package bzu.edu.cn.news;import android.content.Context;import android.support.annotation.NonNull;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.TextView;import com.loopj.android.image.SmartImageView;import java.util.List;public class NewsAdapter extends ArrayAdapter<NewsInfo>{    public NewsAdapter(Context context, List<NewsInfo> objects) {        super(context, R.layout.news_item, objects);    }    @NonNull    @Override    public View getView(int position, View convertView, ViewGroup parent) {        NewsInfo newsinfo= getItem(position);//传递position,获取当前位置对应的newsinfo新闻信息        View view=null;        viewHolder viewHolder;      if(convertView==null){ //判断convertView中是否加载了布局,有没有缓存。为空说明没有缓存           view=LayoutInflater.from(getContext()).inflate(R.layout.news_item,null);          viewHolder=new viewHolder();          viewHolder.siv= (SmartImageView) view.findViewById(R.id.siv_icon);          viewHolder.tv_title= (TextView) view.findViewById(R.id.tv_title);          viewHolder.tv_description= (TextView) view.findViewById(R.id.tv_description);          viewHolder.tv_type= (TextView) view.findViewById(R.id.tv_type);         view.setTag(viewHolder); //保存      }else{          view=convertView;          viewHolder=(viewHolder) view.getTag();      }        viewHolder.tv_title.setText(newsinfo.getTitle());//传递题目        viewHolder.tv_description.setText(newsinfo.getDescription());        viewHolder.tv_type.setText(newsinfo.getType());        return view;    }    class viewHolder{//添加类,封装需要查找的控件        TextView tv_title;        TextView tv_description;        TextView  tv_type;        SmartImageView siv;    }}
MainActivity中

public class MainActivity extends AppCompatActivity {     private ListView lv_news;    private LinearLayout loading;    private List<NewsInfo> newsInfos;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        lv_news=(ListView)findViewById(R.id.lv_news);        loading=(LinearLayout)findViewById(R.id.loading);        fillData2();        //setContentView(R.layout.activity_main);    }

适配器这一块掌握的不好,不会写。所以单独拿出来了。

原创粉丝点击