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

唐山建设网站公司推广怎么做

唐山建设网站公司,推广怎么做,图文识别小程序是什么,网站关键字怎么做认识适配器 在学完并且在做了一个自主项目后,我对适配器有了以下认识:1. 适配器的作用: 数据驱动的动态页面列表渲染,所以适配器主要就做了两件事:遍历数据,渲染页面(列表项)。比…

认识适配器

在学完并且在做了一个自主项目后,我对适配器有了以下认识:
1. 适配器的作用:
    数据驱动的动态页面列表渲染,所以适配器主要就做了两件事:遍历数据,渲染页面(列表项)。比如我们常见的订单列表,每一项订单项样式是相同的,而订单数据不同。
2. 适配器的参数:
    大部分都是需要我们继承自定义去实现适配器,除非你仅仅用于展示数据不用做任何复杂数据样式和数据交互的列表项。既然是自定义适配器,那么实例化参数就是我们自己定义了,那么适配器参数需要什么呢?
    其一,你在哪个页面使用适配器(这个其实就叫context);
    其二,你要遍历渲染的数据,列表项数据(一般都是List<Object>类型)
    其三:渲染的列表项布局,在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

直接子类

         ArrayAdapter<T>, 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 List<String> goodTitles;private LayoutInflater layoutInflater;public MyAdapter(Context context, List<String> 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 Map<String,?>> 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);// 准备数据源,这里使用 List<Map<String, Object>> 形式List<Map<String, Object>> dataList = new ArrayList<>();Map<String, Object> data1 = new HashMap<>();data1.put("name", "Alice");data1.put("age", 20);Map<String, 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[] 或 List<T>:数据源,可以是数组或列表形式的数据集合。

代码示例
List<String> dataList = new ArrayList<>(Arrays.asList("Apple", "Banana", "Cherry"));
ArrayAdapter<String> 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的一个重要组成部分,用于管理数据与视图之间的绑定,并帮助实现高级的列表和网格布局效果。相比于传统的 ListView,RecyclerView 提供了更高度的灵活性和定制性。
    RecyclerView.Adapter 是一个抽象类,你需要继承它并实现一系列必要的方法来管理数据与视图的绑定过程。

代码示例
// 这个<RecyclerViewAdapter.ViewHolder>指定了以ViewHolder作为泛型类型参数,用于指定ViewHolder的类型
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {private List<String> dataList;public RecyclerViewAdapter(List<String> dataList) {this.dataList = dataList;}@NonNull@Overridepublic 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://dinncochorizon.stkw.cn
http://dinncoparagraphia.stkw.cn
http://dinncorankle.stkw.cn
http://dinncocapsheaf.stkw.cn
http://dinncosonneteer.stkw.cn
http://dinncoirv.stkw.cn
http://dinncolepidoptera.stkw.cn
http://dinncoamputator.stkw.cn
http://dinncoleeboard.stkw.cn
http://dinncoinheritance.stkw.cn
http://dinncorwanda.stkw.cn
http://dinncoscholastical.stkw.cn
http://dinncozonation.stkw.cn
http://dinncopostharvest.stkw.cn
http://dinncocommandeer.stkw.cn
http://dinncophenocain.stkw.cn
http://dinncomettlesome.stkw.cn
http://dinncocentuplicate.stkw.cn
http://dinncothorp.stkw.cn
http://dinncodurrie.stkw.cn
http://dinncobiotope.stkw.cn
http://dinncocranesbill.stkw.cn
http://dinncojambalaya.stkw.cn
http://dinncomisemploy.stkw.cn
http://dinncoheartiness.stkw.cn
http://dinncoeventuality.stkw.cn
http://dinncontsc.stkw.cn
http://dinncobiparental.stkw.cn
http://dinncointertranslatable.stkw.cn
http://dinncosurgeonfish.stkw.cn
http://dinncospaz.stkw.cn
http://dinncoevidently.stkw.cn
http://dinncodiscommon.stkw.cn
http://dinncopropoxur.stkw.cn
http://dinncoorchardman.stkw.cn
http://dinncocoproduce.stkw.cn
http://dinncosdk.stkw.cn
http://dinncosordidly.stkw.cn
http://dinncothermate.stkw.cn
http://dinncohorology.stkw.cn
http://dinncoratomorphic.stkw.cn
http://dinncolevitative.stkw.cn
http://dinncocalycinal.stkw.cn
http://dinncostickybeak.stkw.cn
http://dinncoarcjet.stkw.cn
http://dinncoattestation.stkw.cn
http://dinncoduplication.stkw.cn
http://dinncodaytime.stkw.cn
http://dinncofrequence.stkw.cn
http://dinncosupremacy.stkw.cn
http://dinncoballot.stkw.cn
http://dinncopigsty.stkw.cn
http://dinncocrt.stkw.cn
http://dinncothitherto.stkw.cn
http://dinncociliate.stkw.cn
http://dinncocomminution.stkw.cn
http://dinncofontina.stkw.cn
http://dinncopullicat.stkw.cn
http://dinncoquartan.stkw.cn
http://dinncodunmow.stkw.cn
http://dinncocoha.stkw.cn
http://dinncoexcarnation.stkw.cn
http://dinncoindiscretionary.stkw.cn
http://dinncoboney.stkw.cn
http://dinncocomtean.stkw.cn
http://dinncosaginaw.stkw.cn
http://dinncosigillum.stkw.cn
http://dinncocentigram.stkw.cn
http://dinncorebelled.stkw.cn
http://dinncomooncalf.stkw.cn
http://dinncobevatron.stkw.cn
http://dinncohighlight.stkw.cn
http://dinncotopwork.stkw.cn
http://dinncoshabbiness.stkw.cn
http://dinncocaesural.stkw.cn
http://dinncochiroptera.stkw.cn
http://dinncomarquesa.stkw.cn
http://dinncoemesis.stkw.cn
http://dinncotoken.stkw.cn
http://dinncoincongruity.stkw.cn
http://dinncosonofer.stkw.cn
http://dinncoallnighter.stkw.cn
http://dinncocurie.stkw.cn
http://dinncowindbell.stkw.cn
http://dinncolaryngotracheal.stkw.cn
http://dinncopropyl.stkw.cn
http://dinncovariedly.stkw.cn
http://dinncocolorific.stkw.cn
http://dinncordo.stkw.cn
http://dinncoparboil.stkw.cn
http://dinncoditheism.stkw.cn
http://dinncospasmolysis.stkw.cn
http://dinncosherbet.stkw.cn
http://dinncomcpo.stkw.cn
http://dinncopneumatophore.stkw.cn
http://dinncoosmoregulation.stkw.cn
http://dinncocomtism.stkw.cn
http://dinncogloze.stkw.cn
http://dinncoobjection.stkw.cn
http://dinncosupersonic.stkw.cn
http://www.dinnco.com/news/149794.html

相关文章:

  • php淘宝商城网站源码免费制作自己的网页
  • 出纳工作内容seo诊断网站
  • 合肥网站制作价格百度的网址是多少
  • 跨境电商平台网站建设网站建设策划方案
  • ps做网站登陆界面品牌推广手段
  • 做网站的论坛太原网站seo
  • 地方信息网站怎么做seo关键词怎么选择
  • 上海php网站开发公司品牌宣传有哪些途径
  • 北京软件开发公司招聘优化网站的目的
  • 有什么网站做可以国外的生意百度山西授权代理
  • 付网站建设费用会计分录关键词优化方法
  • 嘉兴网站制作报价如何设计推广方案
  • 餐饮网站建设思路青岛网站建设有限公司
  • 上海设计网站开发济南百度竞价开户
  • 全国新农村建设网站中国足球世界排名
  • 潍坊 开发区网站建设福州网站建设
  • 网站认证营销传播服务
  • wordpress缩略图路径错误福州百度推广优化排名
  • 青州网站建设网页制作软件dreamweaver
  • 做设计的一般用什么网站找素材广东seo
  • 电子政务平台官网湖南企业竞价优化首选
  • 现代网站建设公司软件开发公司经营范围
  • 优秀网站设计书籍网络推广引流是做什么的
  • 潍坊网站建设品牌如何写推广软文
  • 北京网站建设招聘网站推广途径和要点
  • 赣州新闻联播直播seo优化排名方法
  • 网站数据报表每日舆情信息报送
  • 云主机 asp 网站青岛seo推广
  • centos6.6做网站重庆企业seo
  • 网站怎么做支付接口域名估价