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

长宁区网站建设网页视觉asp网站源码

长宁区网站建设网页,视觉asp网站源码,wordpress主页删除,系部网站开发项目的目的一.ListView简介 在Android开发中#xff0c;ListView是一个比较常用的控件。它以列表的形式 展示具体数据内容#xff0c;并且能够根据数据的长度自适应屏幕显示。 二.ListView简单用法 代码部分 1.布局界面 activity_main.xml 代码#xff1a; ?xml versionListView是一个比较常用的控件。它以列表的形式 展示具体数据内容并且能够根据数据的长度自适应屏幕显示。 二.ListView简单用法 代码部分 1.布局界面 activity_main.xml 代码 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityListViewandroid:idid/list_viewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent/ /LinearLayout2.类文件 MainActivity.java 代码 package com.example.listview1; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { //1、定义对象ListView listView;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//2、绑定控件listView(ListView) findViewById(R.id.list_view);//3、准备数据String[] data{菠萝,芒果,石榴,葡萄, 苹果, 橙子, 西瓜,菠萝,芒果,石榴,葡萄, 苹果, 橙子, 西瓜,菠萝,芒果,石榴,葡萄, 苹果, 橙子, 西瓜};//4、创建适配器 连接数据源和控件的桥梁//参数 1当前的上下文环境//参数 2当前列表项所加载的布局文件//(android.R.layout.simple_list_item_1)这里的布局文件是Android内置的里面只有一个textview控件用来显示简单的文本内容//参数 3数据源ArrayAdapterString adapternew ArrayAdapter(MainActivity.this,android.R.layout.simple_list_item_1,data);//5、将适配器加载到控件中listView.setAdapter(adapter);//6、为列表中选中的项添加单击响应事件listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {Overridepublic void onItemClick(AdapterView? parent, View view, int i, long l) {String result((TextView)view).getText().toString();Toast.makeText(MainActivity.this,您选择的水果是result,Toast.LENGTH_LONG).show();}});}}代码解析 1.ArrayAdapter适配器 1、ArrayAdapter适用亍数组或数据ArrayList(动态数组)。2、ArrayAdapter可以通过泛型来指定要适配的数据类型然后在构造凼数中把要适配的数据传入。3、ArrayAdapter有多个构造函数的重载可以根据实际情况选择最合适的一种。 2.点击事件响应 Parent: 指定哪个AdapterView可能会有多个ListView区分多个ListView View: 为你点击的Listview的某一项的内容来源于adapter。如用((TextView)view).getText().toString()可以取出点击的这一项的内容转为string 类型。 Position: 指的是adapter的某一项的位置如点击了listview第2项而第2项对应 的是adapter的第2个数值那此时position的值就为1了。注这些数值都是从0开 始的。 Idid的值为点击了Listview的哪一项对应的数值点击了listview第2项那id就等于1。一般和position相同。 三.定制 ListView 界面 只能显示一段文本的listview太单调了我们现在就来对listview的界面进行定制让其丰富内容。 代码部分 1.布局界面 activity_main.xml 代码 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityListViewandroid:idid/list_viewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent/ /LinearLayout2.类文件 MainActivity.java 代码 package com.example.listview2; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity {//第一步定义对象ListView listView;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//第二步绑定控件listView (ListView) findViewById(R.id.list_view);//第三步准备数据ListFruit fruitlist new ArrayList();for (int i 0; i 2 ; i) {Fruit pineapplenew Fruit(R.drawable.pineapple,菠萝,¥16.9 元/KG);fruitlist.add(pineapple);Fruit mango new Fruit(R.drawable.mango, 芒果,¥29.9 元/kg);fruitlist.add(mango);Fruit pomegranate new Fruit(R.drawable.pomegranate, 石榴,¥15元/kg);fruitlist.add(pomegranate);Fruit grape new Fruit(R.drawable.grape, 葡萄,¥19.9 元/kg);fruitlist.add(grape);Fruit apple new Fruit(R.drawable.apple, 苹果,¥20 元/kg);fruitlist.add(apple);Fruit orange new Fruit(R.drawable.orange, 橙子,¥18.8 元/kg);fruitlist.add(orange);Fruit watermelon new Fruit(R.drawable.watermelon, 西瓜,¥28.8元/kg);fruitlist.add(watermelon);}//第四步设计每一个列表项的子布局//第五步定义适配器 控件 -桥梁-数据FruitAdapter adapternew FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitlist);listView.setAdapter(adapter);} }3.类文件 Fruit.java 代码 package com.example.listview2; public class Fruit { private int imageID; private String name; private String price;public int getImageID() {return imageID;}public String getName() {return name;}public String getPrice() {return price;}public Fruit(int imageID, String name, String price) {this.imageID imageID;this.name name;this.price price;} }4.类文件 FruitAdapter.java 代码 package com.example.listview2; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; import androidx.annotation.NonNull; import androidx.annotation.Nullable; //用于将上下文、listview 子项布局的 id 和数据都传递过来 public class FruitAdapter extends ArrayAdapterFruit {public FruitAdapter(NonNull Context context, int resource, NonNull ListFruit objects) {super(context, resource, objects);} //每个子项被滚动到屏幕内的时候会被调用NonNullOverridepublic View getView(int position, Nullable View convertView, NonNull ViewGroup parent) {Fruit fruitgetItem(position);//得到当前项的 Fruit 实例//为每一个子项加载设定的布局View viewLayoutInflater.from(getContext()).inflate(R.layout.fruit_item,parent,false);//分别获取 image view 和 textview 的实例ImageView fruitimage view.findViewById(R.id.fruit_image);TextView fruitname view.findViewById(R.id.fruit_name);TextView fruitpriceview.findViewById(R.id.fruit_price);// 设置要显示的图片和文字fruitimage.setImageResource(fruit.getImageID());fruitname.setText(fruit.getName());fruitprice.setText(fruit.getPrice());return view;} }5.布局界面 fruit_item.xml 代码 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:orientationhorizontalandroid:layout_heightwrap_contentImageViewandroid:idid/fruit_imageandroid:srcdrawable/appleandroid:layout_width100dpandroid:layout_height80dp/TextViewandroid:idid/fruit_nameandroid:layout_gravitycenter_verticalandroid:textSize30spandroid:textColor#000000android:textnameandroid:layout_marginLeft10dpandroid:layout_widthwrap_contentandroid:layout_heightwrap_content/TextViewandroid:idid/fruit_priceandroid:layout_gravitycenter_verticalandroid:textColor#ff0000android:textpriceandroid:textSize30spandroid:layout_marginLeft10dpandroid:layout_widthwrap_contentandroid:layout_heightwrap_content/ /LinearLayout代码解析 1.引入动态数组ArrayList 数组的缺点 (1)数组长度固定 (2)定义数组只能指定一种数据类型 ArrayList:可以动态增加和缩减的索引序列它是基于数组实现的list类 List fruitlist new ArrayList(); List泛型里面既包括图片又包含文本因此我们要定义一个Fruit类 2.Fruit类 public class Fruit { private int imageID; private String name; private String price; }在里面添加图片的id名称和价格 然后按下AltInsert键添加构造方法(Constructor)和Get方法(Getter) 3.自定义适配器 控件 -桥梁-数据 为什么要自定义适配器 原因在于当我们想用一些其他的展现方式或者是本案例我们需要的图文混排的呈现方式这就需要DIY了。 1.我们定义一个自定义适配器 FruitAdapter继承ArrayAdapter。 2.自定义适配器中常用的方法getCount、getView、getItem、getItemId。 1创建好后需要添加泛型也就是我们创建的Fruit类 2按下键盘上的AltEnter键创建构造方法倒数第二个list 3重写getView方法 4.inflate()方法 inflate()方法的三个参数 inflate(R.layout.fruit_item,parent,false) 1、第一个参数是布局自己写的 2、第二个参数是父容器控件 3、第三个布尔值参数表明是否连接该布局和其父容器控件在这里的情况设置 为false因为系统已经插入了这个布局到父控件设置为true将会产生多余的一 个View Group。 四.提升ListView的运行效率 目前我们ListView的运行效率是很低的因为在FruitAdapter的 getView()方法中每次都将布局重 新加载了一遍将快速滚动的时候 这将会成为性能的瓶颈。 getView()方法中的convertView参数用于将之前加载好的布局进行缓存以便之 后可以进行重用。 优化方法一 优化方法二 代码 package com.example.listview3; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; import androidx.annotation.NonNull; import androidx.annotation.Nullable; //用于将上下文、listview 子项布局的 id 和数据都传递过来 public class FruitAdapter extends ArrayAdapterFruit {public FruitAdapter(NonNull Context context, int resource, NonNull ListFruit objects) {super(context, resource, objects);}NonNullOverridepublic View getView(int position, Nullable View convertView, NonNull ViewGroup parent) {Fruit fruitgetItem(position);//获取当前项的 Fruit 实例View view;//新增一个内部类 ViewHolder用于对控件的实例进行缓存ViewHolder viewHolder;if (convertViewnull){//为每一个子项加载设定的布局view LayoutInflater.from(getContext()).inflate(R.layout.fruit_item,parent,false); viewHoldernew ViewHolder();//分别获取 imageview 和 textview 的实例viewHolder.fruitimage view.findViewById(R.id.fruit_image);viewHolder.fruitname view.findViewById(R.id.fruit_name);viewHolder.fruitpriceview.findViewById(R.id.fruit_price);view.setTag(viewHolder);//将 viewHolder 存储在 view 中}else {viewconvertView;viewHolder (ViewHolder) view.getTag();//重新获取 viewHolder}// 设置要显示的图片和文字viewHolder.fruitimage.setImageResource(fruit.getImageID());viewHolder.fruitname.setText(fruit.getName());viewHolder.fruitprice.setText(fruit.getPrice());return view;}private class ViewHolder {ImageView fruitimage;TextView fruitname;TextView fruitprice;} }五.ListView的点击事件 ListView的滚动毕竟只是满足 了我们视觉上的效果,下面我们来学习ListView如何才能响 应用户的点击事件。 代码 //第六步listview 的点击事件 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {Overridepublic void onItemClick(AdapterView? adapterView, View view, int position, long id) {Fruit fruit fruitlist.get(position) ;Toast.makeText(MainActivity.this,您选择的水果是fruit.getName(),Toast.LENGTH_LONG).show();} });六.总结
http://www.pierceye.com/news/579476/

相关文章:

  • 凡科建站怎么删除网站建设电子商务网站建设分析
  • 公众号 微网站开发西安网站建设熊掌号
  • 商城网站开发哪家好长春网站建设推荐网诚传媒
  • 网站被墙怎么做跳转重庆网站建设找重庆万为
  • 学做网站的书哪些好电子商务网站设计包括哪些内容
  • 网站建设需求 百度文库kompozer wordpress
  • 菜篮网网站开发技术山东省住房和城乡建设厅领导名单
  • 域名备案与网站备案的区别深圳建筑公司招聘信息
  • 网站开发完后如何上线淘宝上网站建设好便宜
  • 云南省科技网站网站建设的推广渠道
  • 网页网站设计公司排行榜南京专业app开发定制
  • 网站开发人员就业前景公司的网站建设注意点
  • 做英文网站2014深圳网站设计g
  • 温州文成县高端网站设计做网站有生意吗
  • 网站开发说明书模板产品设计考研
  • seo网站排名优化软件京东 wordpress
  • 有些网站为什么可以做资讯微信小程序vr全景
  • 做网站的开发工具长春百度关键词优化
  • 网站建设所需人力网站制作的必备技巧有哪些
  • 上饶网站建设推广四川城乡建设网网站
  • 网站logo怎么改服装手机商城网站建设
  • aspnet网站开发实例视频天津网站建设普斯泰
  • 玉溪网站建设设计心理医院网站优化服务商
  • 支付宝网站接口申请建湖做网站哪家最好
  • 网站的超级链接怎么做无法运行电脑wordpress
  • 网站建设企业网银e路通西宁做网站_君博相约
  • 陕西网站建设公司哪有大连网站建设
  • 东莞做网站 汇卓百度网盘官网登录入口
  • 网站建设哪谷歌浏览器安卓版下载
  • 中国建设银行上海市分行网站天津工程建设信息网站