当前位置: 首页 > news >正文

整容医院网站建设目的公司建设内容

整容医院网站建设目的,公司建设内容,太原百度seo网站建设,郓城网站建设认识适配器 在学完并且在做了一个自主项目后#xff0c;我对适配器有了以下认识#xff1a;1. 适配器的作用#xff1a; 数据驱动的动态页面列表渲染#xff0c;所以适配器主要就做了两件事#xff1a;遍历数据#xff0c;渲染页面#xff08;列表项#xff09;。比…认识适配器 在学完并且在做了一个自主项目后我对适配器有了以下认识1. 适配器的作用     数据驱动的动态页面列表渲染所以适配器主要就做了两件事遍历数据渲染页面列表项。比如我们常见的订单列表每一项订单项样式是相同的而订单数据不同。2. 适配器的参数     大部分都是需要我们继承自定义去实现适配器除非你仅仅用于展示数据不用做任何复杂数据样式和数据交互的列表项。既然是自定义适配器那么实例化参数就是我们自己定义了那么适配器参数需要什么呢     其一你在哪个页面使用适配器这个其实就叫context     其二你要遍历渲染的数据列表项数据一般都是ListObject类型     其三渲染的列表项布局在android studio中布局页面都是全局的可引用的(R.layout.my_list_item)所以可以不用作为实例化适配器参数。     其他其他呢就没了准确来说是必要的没了那么其他参数无非是结合具体业务逻辑来决定。3. 如何使用适配器     其一适配器的使用对象即我的哪个页面的哪个地方列表组件需要使用适配器。     其二创建适配器对象适配器需要哪些参数。     其三设置适配器为使用对象设置适配器。4. 刷新页面列表项     数据常指变量也就是说数据是变化的那么我们就有需求更改数据后及时地自动进行页面数据刷新。     页面为什么要刷新因为数据变了所以拿到最新数据再重新创建或更新适配器对象然后重设置适配器就好了。 BaseAdapter 结构 public abstract class BaseAdapter extends Object implements ListAdapter SpinnerAdapter          java.lang.Object android.widget.BaseAdapter 直接子类          ArrayAdapterT, CursorAdapter, SimpleAdapter 间接子类         ResourceCursorAdapter, SimpleCursorAdapter 简要 描述     一个抽象类是各种适配器的基础它为简单的列表提供了基本的实现但也可以根据需要进行定制。可作用于的页面控件     ListView用于显示垂直滚动的单列数据列表。     GridView用于显示网格布局的数据列表支持水平和垂直滚动。     Spinner下拉选择框可通过BaseAdapter来自定义下拉选项的样式和数据。     ExpandableListView可展开的列表视图用于显示具有层次结构的数据列表。需要重写的方法     getCount、getItem、getItemId、getView。 重写方法说明 int getCount()     获取传入数据的长度Object getItem(int i)     根据索引获取指定的数据项long getItemId(int i)     如果结合数据库的话就是获取对应的记录id了不结合数据库就是获取数据项的索引View getView(int i, View view, ViewGroup viewGroup)     数据索引可以获取当前列表项数据然后可以开始结合数据构建具体的列表项视图。 代码示例 private class MyAdapter extends BaseAdapter{private Context context;private ListString goodTitles;private LayoutInflater layoutInflater;public MyAdapter(Context context, ListString goodTitles){this.context context;this.goodTitles goodTitles;this.layoutInflater LayoutInflater.from(context);}Overridepublic int getCount() {return goodTitles.length;}Overridepublic Object getItem(int i) {return goodTitles[i];}Overridepublic long getItemId(int i) {return i;}Overridepublic View getView(int i, View view, ViewGroup viewGroup) {View itemView layoutInflater.inflate(MainActivity.this,R.layout.items,null);goodTitle itemView.findViewById(R.id.title);goodImg itemView.findViewById(R.id.img);goodPrice itemView.findViewById(R.id.price);goodTitle.setText(goodTitles[i]);goodImg.setBackgroundResource(goodImgs[i]);goodPrice.setText(goodPrices[i]);return itemView;} } 优化getView // 优化getView的原因主要是避免列表项视图的重复构建Override public View getView(int i, View view, ViewGroup viewGroup) {MyHolder myHolder null;if(view null){view View.inflate(MainActivity.this,R.layout.items,null);MyHolder new ViewHolder(view);view.setTag(myHolder);}else{myHolder (ViewHolder) view.getTag();}myHolder.goodTitle.setText(goodTitles[i]);myHolder.goodImage.setBackgroundResource(goodImgs[i]);myHolder.goodPrice.setText(goodPrices[i]);return view; }class MyHolder{TextView goodTitle;ImageView goodImage;TextView goodPrice;public MyHolder(View view){this.goodTitle view.findViewById(R.id.title);this.goodImage view.findViewById(R.id.img);this.goodPrice view.findViewById(R.id.price);} } SimpleAdapter 简要 继承自BaseAdapter实现了BaseAdapter的抽象方法可以实例化直接使用。public SimpleAdapter(Context context,                     List?extends MapString,? data,                     int resource,                     String[] from,                     int[] to                     ) context上下文对象用于访问应用程序资源。 data数据源它通常是一个包含 Map 对象的列表每个 Map 对象表示一条数据。 resource用于指定列表项的布局资源 ID。 from用于指定数据中的键名表示要展示在布局中的数据项。 to用于指定布局中的视图资源 ID表示数据应该展示在布局中的哪个视图上。 可作用于的控件ListView、GridView、Spinner。 代码示例 // 下面是一个简单示例它将一组数据适配到ListView中进行展示public class MainActivity extends Activity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 准备数据源这里使用 ListMapString, Object 形式ListMapString, Object dataList new ArrayList();MapString, Object data1 new HashMap();data1.put(name, Alice);data1.put(age, 20);MapString, Object data2 new HashMap();data2.put(name, Bob);data2.put(age, 25);dataList.add(data1);dataList.add(data2);// 指定数据对应的 keyString[] from {name, age};// 指定数据展示的视图资源 IDint[] to {R.id.text_name, R.id.text_age};// 创建 SimpleAdapterSimpleAdapter simpleAdapter new SimpleAdapter(this, dataList,R.layout.list_item, from, to);// 获取 ListViewListView listView findViewById(R.id.list_view);listView.setAdapter(simpleAdapter);} }ArrayAdapter 简要 简述     继承自BaseAdapter可以直接实例化使用该适配器有个重要的特点就是数据源单一意味着ArrayAdapter只能渲染列表项单一的控件。     ArrayAdapter的构造函数通常包含以下参数     Context上下文对象用于访问应用程序资源。     int用于指定列表项的布局资源 ID。     T[] 或 ListT数据源可以是数组或列表形式的数据集合。 代码示例 ListString dataList new ArrayList(Arrays.asList(Apple, Banana, Cherry)); ArrayAdapterString adapter new ArrayAdapter(this, android.R.layout.simple_list_item_1,dataList ); ListView listView findViewById(R.id.list_view); listView.setAdapter(adapter); CursorAdapter 感觉就是省略了遍历Cursor对象的步骤没什么大用还不如用BaseAdapter实现二者实现代码量差别不大而且后者更灵活。所以这里就不介绍CursorAdapter了。 RecyclerView.Adapter 简要 RecyclerView.Adapter 是用于将数据适配到 RecyclerView中进行展示的适配器类。它是 页面控件RecyclerView的一个重要组成部分用于管理数据与视图之间的绑定并帮助实现高级的列表和网格布局效果。相比于传统的 ListViewRecyclerView 提供了更高度的灵活性和定制性。     RecyclerView.Adapter 是一个抽象类你需要继承它并实现一系列必要的方法来管理数据与视图的绑定过程。 代码示例 // 这个RecyclerViewAdapter.ViewHolder指定了以ViewHolder作为泛型类型参数用于指定ViewHolder的类型 public class RecyclerViewAdapter extends RecyclerView.AdapterRecyclerViewAdapter.ViewHolder {private ListString dataList;public RecyclerViewAdapter(ListString dataList) {this.dataList dataList;}NonNullOverridepublic ViewHolder onCreateViewHolder(NonNull ViewGroup parent, int viewType) {View view LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);return new ViewHolder(view);}Overridepublic void onBindViewHolder(NonNull ViewHolder holder, int position) {String data dataList.get(position);holder.textView.setText(data);}Overridepublic int getItemCount() {return dataList.size();}public static class ViewHolder extends RecyclerView.ViewHolder {TextView textView;public ViewHolder(View itemView) {super(itemView);textView itemView.findViewById(R.id.text_view);}} }
http://www.hkea.cn/news/14340317/

相关文章:

  • 网站开发与服务合同静态网站 站内搜索
  • 网站推广是什么岗位网站之家
  • 站长检测同ip网站很多怎么办画廊网站模板 frontpage
  • 网站建设佰金手指科杰三十网络营销书籍排行榜前十名
  • 找人做网站会给源代码吗wordpress 批量导入文章
  • 青岛网页建站工具wordpress开发环境
  • 网站怎么上传数据库机房网络组建方案
  • 建设云网站江西省赣州市地图
  • 网站推广的优点智慧团建电脑登录入口官网
  • 大汉网站开发建立网站 域名 服务器
  • 创新的购物网站建设网站表单模板
  • 长沙网站设计摄影logo设计
  • 免费网站系统下载html编辑器文字居中
  • 一般建设一个网站多少钱wordpress淘宝采集
  • 佛山网站建设公司怎么样东宁做木耳招工人网站
  • 网站整体迁移该怎么做局域网建设直播网站
  • 北京建站公司兴田德润很好公司网站 seo
  • 什么网站做问卷好自适应网站建设模板
  • 宏泰机械网站建设WordPress推荐中文插件
  • 做网站用什么语言简单用WordPress做一个落地页
  • 深圳 响应式网站建设wordpress完整虚拟资源下载类源码
  • 新建网站怎么做优化网站推广办法
  • 东莞营销网站建设多少钱企业网站续费
  • 旅游网站的建设内容Wordpress卡片主题
  • 陕西做网站找谁wordpress 文字链接
  • 建设一个营销型网站山西省住房与城乡建设厅网站
  • 可以查企业的网站ui设计是什么工作
  • 回收手表的网站网站设计论文经济可行性分析
  • 广州多语言外贸网站建设支付网站建设会计分录
  • 聊城网站推广品牌wordpress主题虚拟资源交易平台