`
zengyan2012
  • 浏览: 413749 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android adapter 操作Activity中的方法 ------------弱引用WeakReference----断点记录

 
阅读更多

---------------------------背景--------------------------------------------

Activity中有个Popupwindow.

想在Adapter中的getView中设置Checbox的点击事件时,就显示与隐藏这个Popupwindow

 

但是因为Adapter与Activity不是同一个类,所以操作有点麻烦..

 

--------------------------分割线--------------------------------------------

 

类: Adapter 继承 BaseAdapter

类:Activity 继承Activity

 

Adapter中--------------------------

 

WeakReference<Activity> weak; // 定义弱引用变量

 

public Adapter(Context context){

this.weak = new WeakReference<Activity>((Activity)context);

   ........

}

getView 方法中

 checkbox的监听器中

     final Ativity activity = weak.get();

     activity.**(); //   /// // 这里调用Activity中的方法////////////////////////////

 

 

 

-------------------------------------------一直是用上面的方法,但是太复杂了。这几天别人一说才知道还有一种更加简单的方法----------------------

 

红色代码就是调用的部分。

 

Activity:

 public class MyActivity extends Activity

{

public void test(){};

public void test(int position){}

}

BaseAdater:

public class MyBaseAdapter extends BaseAdapter{

MyActivity context;

     public  MyBaseAdapter(MyActivity context){

this.context = context;

}

//其他函数中调用MyActivity的方法。

context.test();

context.text(1);

 

 

 

}

 

分享到:
评论

相关推荐

    Android代码-Android-performance-optimization

    - 解决方法:在Activity的onDestroy()方法中移除所有待处理的消息和回调,或者使用静态内部类+弱引用的方式创建Handler,避免强引用导致的内存泄露。 4. 网络请求优化: - 使用缓存策略:对于可缓存的数据,使用...

    80-NJ221-1-REV-B-Android-Memory-Leak-Debug-User-Guide

    4.1 使用弱引用(WeakReference, SoftReference):对于可能导致内存泄漏的引用,可以考虑使用弱引用或软引用,让GC能更轻易地回收这些对象。 4.2 避免静态变量:静态变量生命周期与应用相同,可能导致长时间持有...

    android-clean-http-async-task.7z

    使用WeakReference可以有效地解除AsyncTask与Activity的强引用关系,防止内存泄漏。 在实践中,我们可以结合现代Android架构组件,如LiveData或RxJava,来更好地处理网络请求的结果,并实时更新UI。LiveData是...

    Android_memory-leak-debugging.pdf.zip_Android memory le_android_

    - 避免在非静态内部类中引用外部对象,除非明确知道生命周期。 - 使用Application Context代替Activity Context,除非确实需要Activity的特性。 - 使用Android提供的内存管理指南,遵循最佳实践进行开发。 通过...

    Android中的软引用和弱引用

    在Android中,软引用和弱引用常用于图片缓存。例如,当我们加载大量图片时,为了避免内存溢出,可以使用软引用来保存图片对象,这样在内存不足时,这些图片会被自动移除,释放内存。而弱引用则更适合用于临时的、不...

    Android高级应用源码-Android-异步图片加载器.rar

    在Android开发中,异步图片加载是一个至关重要的技术,它能优化用户体验,避免因为网络延迟导致的界面卡顿。这个“Android高级应用源码-Android-异步图片加载器”压缩包提供了一种实现方式,可以帮助开发者理解并...

    android-show-image-and-path.7z

    让我们深入探讨一下Android中显示图像和获取图像路径的相关知识点。 1. **显示图像** - **ImageView**: Android系统提供的`ImageView`组件是用于展示图片的基础控件。你可以通过`setImageResource()`、`...

    Android笔记 Application对象的使用-数据传递以及内存泄漏问题

    在Android应用开发中,`Application`对象是每个应用程序的基础组件,它是所有Activity、Service等组件的顶级父类。本篇笔记将深入探讨`Application`对象的使用,包括如何利用它进行数据传递以及如何避免常见的内存...

    Java引用总结--StrongReference、SoftReference、WeakReference、PhantomRef

    弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。 虚引用(PhantomReference)“虚引用”顾名思义,就是形同虚设...

    WeakDelegate,Weakreference财产委托提议.zip

    4. **弱引用在UI组件中的应用**:在Android中,视图(View)通常持有对Activity的引用,如果View中存在强引用到Activity,会导致Activity无法被回收,可能会引发内存泄漏。使用弱引用的委托可以确保当Activity被销毁时...

    Android面试题

    以下是一些可能在Android面试中遇到的关键知识点: 1. **Android基础知识**: - 应用程序组件:Activity、Service、BroadcastReceiver、ContentProvider的基本功能和生命周期。 - 活动(Activity)的启动模式:...

    Android 图片缓存、加载器-IT计算机-毕业设计.zip

    在Android应用开发中,图片缓存和加载器是至关重要的组成部分,它们对于提高用户体验和优化应用性能起着关键作用。本项目"Android 图片缓存、加载器"提供了一个源码示例,非常适合毕业设计学习,帮助理解Android应用...

    Java 7之基础 - 强引用、弱引用、软引用、虚引用1

    程序员可以使用`WeakReference`类创建弱引用。 3. **软引用(Soft Reference)** - **定义**:软引用比弱引用稍强一些,它表示那些对系统资源还有一定价值的对象引用。只有当系统内存不足时,才会回收被软引用指向...

    Android--开发--高手过招 FAQ.rar

    3. **Intent与IntentFilter**:Intent是Android中的消息传递机制,IntentFilter用于接收并响应Intent,二者是组件间通信的关键。 4. **性能优化**:包括内存优化(如避免内存泄漏、使用WeakReference)、绘制优化...

    Android应用源码之策略游戏-回到战国源码.zip

    10. **Android性能优化**:源码中可能包含了内存优化、绘制优化、启动速度优化等方面的实践,例如使用WeakReference防止内存泄漏,使用SparseArray替代HashMap以减少内存占用。 11. **测试与调试**:源码可能包含了...

    Android 仿QQ客户端及服务端源码-IT计算机-毕业设计.zip

    - **内存管理**:避免内存泄漏,合理使用WeakReference、软引用等。 - **UI流畅性**:避免阻塞主线程,使用异步加载图片和数据。 - **电池优化**:减少不必要的后台活动,降低功耗。 10. **测试与调试**: - **...

    Android应用源码简单的Android图片轮播-IT计算机-毕业设计.zip

    通过合理使用软引用(`SoftReference`)或弱引用(`WeakReference`),以及加载时缩放图片,可以防止内存泄漏和Out of Memory错误。 10. **版本兼容**:Android系统有多个版本,开发者需要关注API级别的兼容性。...

    Android处理内存泄漏的代码例子

    解决方法是使Adapter与Activity解耦,例如使用静态内部类,并使用弱引用持有Activity: ```java public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder&gt; { private WeakReference&lt;Activity&gt; ...

    Android 淘宝客户端源码-IT计算机-毕业设计.zip

    - **Activity与Fragment**:淘宝客户端中必定包含多个Activity和Fragment,用于管理不同的屏幕视图和用户交互。 - **网络请求**:应用可能使用OkHttp、Volley等库进行网络通信,了解如何处理API接口,解析JSON数据...

    Android--开发-- Gallery实现异步加载网络图片 并只加载当前停止页面图.rar

    - 在Android中,我们可以使用`AsyncTask`、`Handler`、`IntentService`或第三方库如`Volley`、`Picasso`、`Glide`等实现异步加载。 2. **使用`AsyncTask`**: - 创建一个继承自`AsyncTask`的类,定义`...

Global site tag (gtag.js) - Google Analytics