做过项目的童鞋们应该会遇到过这样的情况,我有的参数实在类A中获得的,但是我在类B需要这个参数来做一些事情。一般来说有一个做法是设定全局变量,通过调用全局变量来获得该参数,这也是我在学习的过程中学到的方法。
但是,这种全局变量往往会带来一个问题就是当我这个数据不需要使用时,或者说是我这个数据需要重新获得值的时候,往往会获得以前的值或者就是值没清楚干净。这样就会给程序带来问题。
好在我近期看到一个例子,用接口来传参,感觉很神奇,当时做了些的笔记。但是今天自己用的时候发现又有些遗忘了,所以现在拿出来记录一笔。
大致的过程是这样的,我有一个Activity类,一个普通类来控制一个Dialog,还有一个接口,有Activity类控制显示Dialog,再由Dialog来控制Activity退出。
话不多说,上代码:
接口:
public interface MyInterface {
void CloseActivity(boolean isClose);
}
Activity类,显示Dialog:
public class InterfaceDemoActivity extends Activity{
/** Called when the activity is first created. */
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
MyDialog md = new MyDialog(InterfaceDemoActivity.this, mi);
md.ShowDialog();
}
});
}
MyInterface mi = new MyInterface() {
public void CloseActivity(boolean isClose) {
// TODO Auto-generated method stub
if(isClose){
InterfaceDemoActivity.this.finish();
}
}
};
}
普通类,控制Dialog:
public class MyDialog {
private Context mContext;
private AlertDialog alert;
private MyInterface mMI;
public MyDialog(Context context,MyInterface mi){
this.mContext = context;
this.mMI = mi;
CreatDialog();
}
private void CreatDialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(this.mContext);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
MyDialog.this.mMI.CloseActivity(true);
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alert = builder.create();
}
public void ShowDialog(){
alert.show();
}
}
其实,看过Android的Dialog的文档的童鞋可以发现我的普通类里面完全用的就是文档中Dialog的例子,可以直接在Activity类中用,那为什么我这边还要多此一举呢?原因是面向对象中,类的单一原则,一个类只干一件事。我既然在Activity类中控制了Dialog的显示,那我索性就新建一个类来控制Dialog的操作。但是我的普通类没法直接控制Activity类的关闭,那我就索性用接口来给Activity类传个boolean值,告诉它你可以关闭了。当然,接口的传值还可以用在别的方面,这就要自己在实际的操作中去摸索了。
分享到:
相关推荐
在Android平台上开发一款日记本应用是一项常见的任务,尤其对于初学者和有经验的开发者来说都是一个有趣的实践项目。本文将围绕“安卓日记本”的主题,深入探讨如何使用Android Studio进行应用开发,以及在这个过程...
在Android平台上,开发一款移动日记本应用是一种常见的实践,它为用户提供了一种便捷的方式来记录他们的日常生活,情感体验,以及重要事件。这款名为"Diary"的应用不仅包含了传统的文本日记功能,还创新性地集成了...
在Android平台上,开发一个个人日记本应用涉及到...综上所述,实现一个Android日记本应用涵盖了数据库操作、UI设计、数据持久化、用户交互等多个方面,涉及的知识点丰富多样,对开发者来说是一个很好的实战练习项目。
《Android日记本(上线版)》是一款专为Android平台设计的日记应用,旨在提供便捷、个性化的记录方式,让用户能够随时随地记录生活中的点滴。这款应用的第二版已经正式上线,并在指定网址...
在Android平台上开发一款日记应用,涉及的技术点广泛且深入,涵盖了...以上是开发“Android日记”应用涉及的主要技术点,实际开发中还需要结合测试、性能优化、用户体验改进等多方面工作,以打造一个高质量的日记应用。
在Android平台上,开发一款日记本应用是一个常见的实践项目,它能帮助用户记录日常生活中的点滴,同时为初学者提供了一个理解Android应用开发的良好起点。这款"android 日记本"源代码正是这样一个实例,它包含了基本...
【Android应用源码之日记本.zip】是一个包含Android应用程序源代码的压缩文件,重点在于学习和研究Android开发。这个源码实例很可能是一个简单的日记应用程序,它可以帮助开发者理解如何在Android平台上构建用户友好...
《基于Android的个人日记本程序:SQLite数据库应用详解》 在移动应用开发领域,Android操作系统以其开源、灵活性和广泛的应用范围占据了重要的地位。本项目“基于Android的个人日记本程序”是一个典型的应用实例,...
【Android日记本小程序】是一个专为Android平台设计的轻量级应用示例,它展示了如何在Android环境中开发一个简单的日记应用程序。这个项目包含了完整的源代码和详细的说明文档,旨在帮助初学者,特别是对软件开发有...
【Android日记本源码】是一个深入探讨Android应用开发的实例,尤其关注布局设计与数据存储这两方面的技术。在这个项目中,开发者将学习如何构建一个功能齐全的日记应用程序,包括创建用户友好的界面、记录和保存用户...
【基于Android的日记本】是一款专为Android系统设计的简易日记应用,它利用SQLite数据库技术,为用户提供方便快捷的日记记录、编辑与管理服务。在这款应用中,SQLite作为一个轻量级的数据库引擎,能够在没有独立...
【Android日记本】是一款专为Android用户设计的个人日记应用,它具备了基本的日记管理功能,如添加、删除、修改和查询等。这款应用强调安全性,采用密码登录机制,确保用户的私密信息得到妥善保护。同时,其界面设计...
在移动设备上,日记类应用一直是用户常用的功能之一,而“Android日记本”则是一款由个人开发者基于Android平台自行设计并实现的日记应用。这款应用不仅具备了日记的基本功能,如记录文字、日期、时间等,还创新性地...
这篇"Android日记"深入探讨了Android开发中的日志使用、调试技巧以及如何优化日志输出,旨在帮助初/中级开发者提升技能。让我们一起翻开这本Android Study Diary,探索其中蕴含的宝贵知识。 首先,理解Android的...
本实例“Android日记本”是针对初学者和有一定基础的开发者设计的,它基于Android 5.0(Lollipop)系统,能够正常运行,提供了一个完整的应用开发流程的示例。 首先,让我们深入了解一下Android应用程序的基本结构...
【Android日记本软件(源码)】是一款专为Android平台设计的个人日记应用,由自学开发者编写的。这个项目提供了一整套实现日记记录、查看和管理功能的源代码,对于学习Android应用开发的初学者或者希望深入理解...
android日记系统源码(数据库的基本操作)
在本项目中,"Android 日记系统源码(数据库的基本操作).zip" 提供了一个完整的 Android 应用程序源代码,它实现了一个简单的日记系统。这个应用的核心功能包括日记的创建、存储、检索和编辑,涉及到Android开发中...
在Android平台上开发一款优雅简洁的日记App,可以充分利用Android系统的特性以及...以上就是构建一个优雅简洁的Android日记App所需的关键技术点,通过这些技术,我们可以打造出一个功能完善、用户体验优秀的日记应用。