OnClickListener接口有一个规定的方法onClick()。事件发生后,安卓将调用的该方法。...我们用setOnClickListener的方法,让MainActivity同时监听两个按钮的点击事件。当事件触发后,安卓调用onClick()方法。...我通过编写getView()方法,来说明每个Category对象和对应条目视图的绑定方式。...当convertView被重复利用时,粘附于其上的两个视图元素的引用也会被重复利用,从而减少了调用findViewById()进行检索的次数。...我们可以重复利用该Holder对象中包含的两个TextView引用,从而减少了findViewById()的调用次数。
android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView...; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import...局部刷新方法三:调用一次getView()方法 这种方法是调用适配器对应的getView方法,用它里面的代码对界面进行刷新。....app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ListView...android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup
()方法,并添加insert()、delete()、query()方法,分别实现数据的添加、删除和查询。...,再调用DBHelper的insert()方法将记录插入到数据库中,然后跳转到QueryActivity来显示音乐列表。...对象,引用变量和实例化对象 listView = getListView(); //查询数据,获取游标 Cursor c = helpter.query(); //列表项数组 String...DBHelper的query()方法查询数据库并返回一个Cursor游标,然后使用SimpleCursorAdapter适配器将数据绑定到ListView控件上,并在ListView控件上注册单击监听器...,当单击一条记录时,显示一个警告对话框提示是否删除,单击“是”,则调用DBHelper的del()方法删除指定记录。
调用ListView对象的setOnItemClickListener()方法,设置条目的点击事件,参数:OnItemClickListener对象 使用匿名内部类实现,重写onClick()方法,传递进来的参数...:ListView,当前View,position,id 根据索引位置把当前这条电话号码传回去 调用List对象的get()方法,得到Map,调用get(key)方法,得到这条电话 调用setResult...()方法,返回去数据,参数:响应码,Intent对象 获取Intent对象,new出来 调用Intent对象的putExtra(key,val),把电话放进去 调用finish()方法关闭当前页面 开启这个的...activity使用的是startActivityForResult() 重写onActivityResult()方法,传递进来Intent对象 判断Intent对象是否为null 调用Intent对象的...; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.EditText
(int position) { return position; } //每当Android ListView需要显示一行时,它会调用此方法 @Override...Adapter的映射List之后,只需要通过调用Adapter的notifyDataSetChanged方法,通知ListView更改数据源即可完成对ListView的动态修改。...注意:在使用mAdapter.notifyDataSetChanged方法时,必须保证传进Adapter的数据List是同一个List而不能是其他对象,否则将无法实现改效果。...NotifyTest.java import android.app.Activity; import android.os.Bundle; import android.view.View; import...; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import
; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import...android.support.v7.widget.ListViewCompat; import android.view.View; import android.widget.AdapterView.../* * listView的点击事件:第一个参数是item所在的适配器引用, * 第二个参数是点击的item的View对象,...ListView需要显示的数据信息,之后将数据信息加入ColorAdapter对象中并且设置ListView控件的适配器为ColorAdapter对象。...,用于创建MyHolder对象作为RecyclerView的显示子项 * 每个 RecyclerView 控件的 item 调用这个方法之后调用 * onBindViewHolder
前面连续几期都在学习ListView的各种使用方法,如果细心的同学可能会发现其运行效率是有待提高的,那么本期就来一起学习有哪些方法技巧来优化ListView的效率。...二、使用持有者模式 与创建列表项组件的另一个代价较大的操作,就是调用findViewById()方法。...在某些GUI工具包中,可以通过在程序代码中整体性地声明复合的View对象来避免这个问题。因为在访问这个组件时,无非就是调用getter方法或访问字段。...在前面学习View的时候,知道每个View对象都有一个getTag()和setTag()方法,通过这两个方法可以在任何对象与组件之间建立联系。...在持有者模式中,Tag标签用来保存对象,而对象又用来保存要使用的子组件。在将持有者添加到视图后,只要用到了行,就可以轻而易举的访问其子组件,而不必再调用findViewById()方法了。
关闭的时候,会调用onActivityResult()方法。...传递过来的参数里面有个Intent对象,通过这个Intent对象获取到数据,展示到界面上 给ListView条目设置点击事件,调用ListView对象的setOnItemClickListener(listener...)方法,参数:OnitemClickListener对象,它是一个接口类型,直接new这个接口,实现以下onItemClick(parent,view,id)方法,如果不知道函数的参数,我们可以采用断点调试的方法...,查看一下参数代表的是什么值,调用ContactInfos对象的get(position)方法,得到ConatctInfo对象,调用ContactInfo对象的getNumber()方法,得到电话号码...传递数据给调用它的activity,调用setResult(requestCode,data)方法,参数:请求码,Intent对象,点击完成之后调用Activity对象的finish()方法 ?
遍历这个集合,遍历中调用person实体类对象的toString()方法,得到一条记录的字符串。...遍历中实例化TextView对象,调用TextView对象的setText()方法,把一条信息放进去。...,应该是在滑动过程中动态new出组件对象,超出视线就销毁掉,这个时候引入了新的控件ListView 获取ListView对象,通过findViewById()方法,调用ListView对象的setAdapter...()获取上下文,调用TextView对象的setText(),数据是List集合调用get()方法,传入索引position获得,返回那个TV对象。...; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter
希望使用ListView来展示信息,每行一个图标,右侧是文字,分为两行布局。经过尝试,这样可以实现: 1、Layout下新建item.xml <?...(LayoutInflater) act .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // 使用View的对象...与R.layout.item关联 View itemView = inflater.inflate(R.layout.item, null); // 通过findViewById()方法实例...; import android.view.View; //添加点击 listView.setOnItemClickListener(new OnItemClickListener...+"个项目"); } }); 参考:Android ListView常用用法 参考:Android入门第七篇之ListView (二)
2,对于要加载的图片资源,先在内存缓存中找(原始的方法是使用SoftRefrence,最新的方法是使用android提供的Lrucache),如果找不到,则在本地缓存(可以使用DiskLrucache...public String getText() { return text; } } package cn.wangmeng.test; import android.view.View...; import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View...handler,线程下载完成后,会发消息给handler,然后handler调用回调接口imageCallback的imageLoaded()方法,这个方法是在adapter里面实现的,所以也就是在主线程跟新...,就可以调用listview的findViewWithTag(imageUrl)来找到对应的imageview,从而不用担心错误的问题,这个方法比较巧妙。
; import android.view.LayoutInflater; import android.view.View; import android.widget.AbsListView;...,用来传值,主类获取对象实例之后,通过自定义的这个方法把对象传入第二类,然后第二类才能做事 public void setTopBar(View v){ topBar = v; }...,设置顶部条的背景; 在其中,还涉及了几个方法,这里简单讲解一下,帮助读者理解,1) addHeaderView(),这个方法是ListView中方法,作用就是Add a fixed view to appear...at the top of the list.为ListView的顶部部分增加一个顶部矩形;2)getTop(),这个方法是View中的方法,作用就是Top position of this view...,作用就是获得一个View的高度,在滚动事件里调用这个方法,就可以不断得到View的高度数据,以便于当做参数值传入setAlpha()方法中。 ②自定义View的XML布局文件 <?
ListView如果内容过多,可以滑动屏幕来显示,并且点击某一行可使用吐司方法弹出对应的水果名字。 1.新建项目,新建entity实体类包,包中建存储每行水果信息的Fruit类。...; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import...ViewHolder(); view = LayoutInflater.from(getContext()).inflate(//convertView为空代表布局没有被加载过,即getView方法没有被调用过...; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.AdapterView...7.注意FruitAdaopter.java类中的getView方法在每个子项被滚动到屏幕内的时候都会被调用,每次都将布局重新加载一边,所以为了提高效率可以进行判断,如果程序运行过一次就将布局保存在参数
接口 实现onItemClick()方法 switch判断一下当前菜单的索引位置,根据索引来实例化不同的Fragment对象 调用getActivity()方法,得到宿主Activity对象,这个activity...暴露一个方法,替换fragment 使用关键字instances of判断getActivity()得到的是MainActivity类的实例 调用宿主Activity对象的switchMenuFragment...()方法,切换内容部分的fragment,参数:Fragment对象 宿主activity暴露方法switchMenuFragment(),切换内容区fragment,参数:Fragment对象 getSupportFragmentManager...().beginTransaction().replace(R.id.ll_main_content, fragment).commit(); 调用SlidingMenu对象的toggle()方法,关闭左侧菜单...; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import
在我们Android 开发中,ListView是在常用不过的控件了。但是有时候会爆出这种异常,就搞得好尴尬了。...异常图片 明明我们在代码中的确是有调用adaptor.notifyDataSetChanged()这个方法的,明显没问题啊。...这是代码 import java.util.ArrayList; import java.util.List; import android.util.SparseArray; import android.view.View...我们在adaptor内部就封装了一个List用于保存用户传过来的List数据,我们这里只是对外部的list有一个引用,但是真正使用到的list,却是内部的List,通过每一次调用notifyDataSetChanged...再调用父类的更新、这样,我们玩来玩去就是外部的list,并不会对内部listview使用到的list有任何影响。就完美屏蔽了这个异常了。
在使用ListView组件来显示列表数据时,有的时候我们需要改变列表中的数据,有以下方法: 1、重新给ListView组件设置适配器 这种方法重新创建了ListView,效率不好。...使用此方法时,需要确保使用的是同一数据存储对象,只是存储对象中的值发生变化,才能使改动生效。...android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View...; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import...Context context;//上下文对象 private List<String dataList;//ListView显示的数据 /** * 构造器 * * @param
属性; -- 获取方法 : 调用 Activity 的 findFragmentById(int id) 或者 findFragmentByTag(String tag)方法; Fragment 向 Activity...- 调用接口方法 : 上面获取了 Callback 对象, 即Activity对象, 调用 Activity 中的 接口方法, 就能在 Fragment 中调用 Activity 对应的方法了; Activity...调用 Fragment 对象的 setArguments(Bundle bundle) 方法, 将 Bundle 对象设置给 Fragment; 5....对象 : 调用 FragmentManager 对象的 beginTransaction() 方法获取 FragmentTransaction 对象; FragmentTransaction(Fragment...对象的 commit() 方法提交修改; addToBackStack()方法作用 : 该方法是 FragementTransaction 的方法, 在提交事务前调用该方法, 可以将 事务中执行的操作
= new DataSetObserver() { /** * 当Adapter的notifyDataSetChanged方法执行时被调用 */...notifyDataSetInvalidate方法执行时被调用 */ @Override public void onInvalidated() {...android.database.DataSetObserver; 5 import android.os.Bundle; 6 import android.view.View; 7 import...= new DataSetObserver() { 25 /** 26 * 当Adapter的notifyDataSetChanged方法执行时被调用 27...notifyDataSetInvalidate方法执行时被调用 41 */ 42 @Override 43 public void onInvalidated
领取专属 10元无门槛券
手把手带您无忧上云