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

国内 设计网站的公司江西省赣州市地图

国内 设计网站的公司,江西省赣州市地图,哪个行业最喜欢做网站,wordpress音频播放ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内#xff0c;同时屏幕上原有数据将会滚动出屏幕。 1、ListView简单用法 如何将ListView将你要显示的大量内容关联起来呢#xff1f;这是个很重要的问题。 1、首先我们必须先将数据提供好#xff0c;因为你的…ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内同时屏幕上原有数据将会滚动出屏幕。 1、ListView简单用法 如何将ListView将你要显示的大量内容关联起来呢这是个很重要的问题。 1、首先我们必须先将数据提供好因为你的目的是要用ListView来展示数据嘛。我们先用一个数组来保存数据。 2、那么数组中的数据怎么才能传递给ListView呢我们通过适配器来完成Android中有很多适配器的实现类比较好用的就是ArrayAdapter。它可以通过泛型来指定更适配的数据类型然后在构造函数中把要适配的数据传入。ArrayAdapter有多个构造函数的重载可以选择合适的一个。 3、要调用ListView地setAdapter()方法将构建好的适配器对象传递进去、这样ListView和数据之间地关联就建立好了。 详细步骤 新建一个ListViewTest项目让AS自动创建好默认活动。假如目前活动已经创建好。 修改activity_main.xml中的代码(在布局中添加ListView控件)如下 schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:contextcom.example.listviewtest.MainActivity ListViewandroid:idid/list_viewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent/ListView/LinearLayout 修改MainActivity中的代码如下 package com.example.listviewtest;import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView;import org.w3c.dom.Text;import java.util.List;public class MainActivity extends AppCompatActivity {private String[] data {A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24};Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ArrayAdapterString adapter new ArrayAdapterString(MainActivity.this,android.R.layout.simple_list_item_1,data);ListView listView (ListView) findViewById(R.id.list_view);listView.setAdapter(adapter);} }ListView是用来展示大量数据的我们应该先将数据提供好这些数据可以是从网上下载的也可以是从数据库中读取的。 我们只是使用一个data数组来测试。 不过数组中的数据是无法直接传递给ListView的我们需要借助适配器来完成。Android 中提供了很多适配器的实现类比较好用的就是ArrayAdapter。它可以通过泛型来指定要适配的数据类型然后在构造函数中把要适配的数据传入。ArrayAdapter有多个构造函数的重载我们选择比较适合的一种。这里由于我们提供的数据都是字符串因此将ArrayAdapter的泛型指定为String然后在ArrayAdapter的构造函数中依次传入当前的上下文ListView子项布局的id以及要适配的数据。 注意这里我们使用了android.R.layout.simple_list_item_1作为ListView子项布局的id这是一个Android内置的布局文件里面只有一个TextView可用于简单地显示一段文本。 最后我们还需要调用ListView地setAdapter()方法将构建好的适配器对象传递进去、这样ListView和数据之间地关联就建立好了。 运行程序如下2、定制ListView的界面 只能够显示一段文本的ListView实在是太单调了我们对ListView的界面进行定制让它可以显示更加丰富的内容。 我们可以让这些名称的旁边显示一个图样。 定义一个实体类Fruit作为ListView适配器的适配类型新建Fruit代码如下 package com.example.listviewtest;public class Fruit {private String name;private int imageId;public Fruit(String name, int imageId) {this.name name;this.imageId imageId;}public String getName() {return name;}public int getImageId() {return imageId;}}Fruit类中只有两个字段name表示水果的名字imageId表示水果对图片的资源id。 ListView的子项指定为一个我们呢我自定义的布局在layout目录下新建fruit_item.xml代码如下?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:orientationhorizontalandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentImageViewandroid:idid/fruit_imageandroid:layout_widthwrap_contentandroid:layout_heightwrap_content /TextViewandroid:idid/fruit_nameandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenter_verticalandroid:layout_marginLeft10dp //LinearLayout我们定义了一个ImageView用于显示水果的图片又定义了一个TextView用于显示水果的名称并让TextView在垂直方向上水平居中。 接下来需要创建一个自定义的适配器这个设配器继承自ArrayAdapter并将泛型指定为Fruit。新建FruitAdapter 代码如下package com.example.listviewtest;import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; 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;/*** Created by ZHJ on 2018/3/3.*/public class FruitAdapter extends ArrayAdapterFruit {private int resourceId; public FruitAdapter(Context context, int textViewResourceId, ListFruit objects){super(context,textViewResourceId,objects);resourceId textViewResourceId;}NonNullOverridepublic View getView(int position, Nullable View convertView, NonNull ViewGroup parent) {Fruit fruit getItem(position);View view LayoutInflater.from(getContext()).inflate(resourceId,parent,false);ImageView fruitImage (ImageView) view.findViewById(R.id.fruit_image);TextView fruitName (TextView) view.findViewById(R.id.fruit_name);fruitImage.setImageResource(fruit.getImageId());fruitName.setText(fruit.getName());return view;} }FruitAdapter重写了父类的一组构造函数用于将上下文、ListView子项布局的id和数据都传递进来。另外又重写了getView()方法这个方法在每个子项被滚动到屏幕内的时候被调用。 在getView()方法中1、首先通过getItem()方法得到当前项的Fruit实例2、然后使用LayoutInflater来为这个子项加载我们传入的布局。LayoutInflater的inflate()方法接收3个参数第一个参数是要加载的布局文件的id第二个参数是给加载好的布局再添加一个父布局第三个参数我们指定为false表示只让我们在父布局中声明的layout属性生效但不会为这个View添加父布局。 调用View的findViewById()方法分别获取ImageView和TextView的实例并分别调用它们的setImageResource()和setText()方法来设置显示的图片和文字。 接着修改MainActivity中的代码如下 package com.example.listviewtest;import android.support.v7.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.Toast;import java.util.ArrayList; import java.util.List;public class MainActivity extends AppCompatActivity {private ListFruit fruitList new ArrayListFruit();//新建对象实例 Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); initFruits(); // 初始化水果数据FruitAdapter adapter new FruitAdapter(MainActivity.this, R.layout.fruit_item, fruitList);//传入上下文、子项布局的id、数据ListView listView (ListView) findViewById(R.id.list_view);listView.setAdapter(adapter);listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {Overridepublic void onItemClick(AdapterView? parent, View view,int position, long id) {Fruit fruit fruitList.get(position);Toast.makeText(MainActivity.this, fruit.getName(), Toast.LENGTH_SHORT).show();}});}private void initFruits() {for (int i 0; i 2; i) {Fruit apple new Fruit(Apple, R.drawable.apple_pic);fruitList.add(apple);Fruit banana new Fruit(Banana, R.drawable.banana_pic);fruitList.add(banana);Fruit orange new Fruit(Orange, R.drawable.orange_pic);fruitList.add(orange);Fruit watermelon new Fruit(Watermelon, R.drawable.watermelon_pic);fruitList.add(watermelon);Fruit pear new Fruit(Pear, R.drawable.pear_pic);fruitList.add(pear);Fruit grape new Fruit(Grape, R.drawable.grape_pic);fruitList.add(grape);Fruit pineapple new Fruit(Pineapple, R.drawable.pineapple_pic);fruitList.add(pineapple);Fruit strawberry new Fruit(Strawberry, R.drawable.strawberry_pic);fruitList.add(strawberry);Fruit cherry new Fruit(Cherry, R.drawable.cherry_pic);fruitList.add(cherry);Fruit mango new Fruit(Mango, R.drawable.mango_pic);fruitList.add(mango);}}} 可以看到这里添加了一个initFruits()方法用于初始化所有的水果数据。在Fruit类中的构造函数将水果的名字和对应的图片id传入然后把创建好的对象添加到水果列表中。 另外使用了一个for循环将所有的水果数据添加了两遍只添加一遍数据还不足以充满整个屏幕。接着在onCreate()方法中创建了FruiteAdapter对象并将FruitAdapter作为适配器传递给ListView这样ListView界面就完成了。 提升ListView的运行效率 之所以说ListView这个控件很难运用因为它有很多细节可以优化其中运行效率就是很重要的一点。目前我们的运行效率是很低的因为在FruitAdapter的getView()方法中每次都将布局重新加载了一遍当ListView快速滚动的时候这就会成为性能的瓶颈。 仔细观察会发现getView()方法中还有一个convertView参数这个参数用于将之前加载好的布局进行缓存一遍日后重用修改FruitAdapter中的代码如下 package com.example.listviewtest;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;public class FruitAdapter extends ArrayAdapterFruit {private int resourceId;//用来计数public FruitAdapter(Context context, int textViewResourceId, ListFruit objects) {super(context, textViewResourceId, objects);resourceId textViewResourceId;}//构造函数Overridepublic View getView(int position, View convertView, ViewGroup parent) { Fruit fruit getItem(position); // 获取当前项的Fruit实例View view;ViewHolder viewHolder;if (convertView null) {view LayoutInflater.from(getContext()).inflate(resourceId, parent, false);viewHolder new ViewHolder();viewHolder.fruitImage (ImageView) view.findViewById (R.id.fruit_image);viewHolder.fruitName (TextView) view.findViewById (R.id.fruit_name);view.setTag(viewHolder); // 将ViewHolder存储在View中 } else {view convertView;viewHolder (ViewHolder) view.getTag(); // 重新获取ViewHolder}viewHolder.fruitImage.setImageResource(fruit.getImageId());viewHolder.fruitName.setText(fruit.getName());return view;} class ViewHolder {ImageView fruitImage;TextView fruitName;}}
http://www.yutouwan.com/news/150954/

相关文章:

  • 网站后台管理系统源代码wordpress最佳插件
  • 惠州市做网站的公司记事本做网站的代码
  • 网站建设与优化diy科技制作网站
  • asp源码-漂亮企业源码大气公司网站模版文化传播公司 网站设计
  • 医院网站管理系统建站优化公司
  • 龙口建网站什么云的网站开发平台
  • 网站建设英文文献目录网站宣传推广方案
  • 徐州网站建设系统做网站seo优化
  • 企业网站建设的主要目的是呼叫中心系统厂家排名
  • 多语言外贸网站网站月流量5g
  • 单位做网站支出应怎么核算中国建筑第八工程局招聘信息
  • 网站建设课程的认识甜水园网站建设
  • 做二手房比较好的网站有哪些欧派网站谁做的
  • 贵州网站建设wordpress页脚变成了页眉
  • 广州最富裕的三个区嘉兴seo
  • 河北网站开发多少钱镇江一网推网络技术有限公司
  • 美术馆网站建设方案书软文推广案例
  • 上传网站步骤禅城网站设计
  • 沭阳做网站shy1z如何设置网站名字
  • 承德市网站建设phpok做网站教程
  • 网站建设制作设计seo优化山东做网站有地区差异吗
  • 即墨有做网站的吗做外贸网站义乌
  • wordpress saas 建站怎么查注册公司的名字可不可以用
  • 深圳网络营销推广专员鞍山抖音seo新闻
  • 济南建网站的网站项目计划书ppt
  • 阿里巴巴网站怎么做才能排第一网页游戏排行2020前十名
  • 重庆网站域名备案地址我想建网站
  • 手机网站设计需求分析网上的推广公司
  • 可以自己做网站吗php后台网站开发
  • 黄岛网站建设哪家权威做瞹视频网站哪里看