做过项目的童鞋们应该会遇到过这样的情况,我有的参数实在类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日记本,主要使用SharedPreferences对象、处理消息的Handler对象,记录当前进度的progress变量。日记文件保存在手机存储中。
Android日记本软件,自学时候自己编写的
android日记 实现日记的记录 查看 搜索等,
移动日记本功能包含传统的日记本和音频日记视频日记实现私密日记和普通日记。.zip
安卓日记本
android-sqlite个人日记本,实现基本的增、删、改、查等内容。
Android日记本第二版(已上线 地址:http://www.mumayi.com/android-366912.html)大神勿喷 哈哈 有需要的可以下载 没分请留邮箱 看到会发
本程序基于android实现,基本功能包括记录日记、删除日记、编辑日记、查看日记等功能,数据库采用sqlite,程序界面美观。
android 日记本源代码,代码很简单,可供学习,扩展,个性化,主要供新手入门.
android日记系统源码(数据库的基本操作)
android个人日记本,密码登录,可以实现增、删、改、查等功能.界面美观,易操作。
Android 日记本学习实例,书上实例源码。基于Android5.0 可以运行
本应用基于android系统的简易日记本,采用sqlite DB技术,能进行简易的增加、修改、删除、查询功能。
该资源总结了Android应用开发的相关知识点,记录对《疯狂Android讲义》的学习成果,非常适合作为初/中级开发者的案例学习。
不能随时随地的写日记?担心别人偷看?随着当代社会的迅速发展,人们喜欢更便捷的生活,谁会整天随时带着一个日记本呢?有感而发的心情,想要给它配上颜色记录下来,单一的日记本已经满足不了人们的需求。人们更趋向...
利用”旅行日记”可以记录你旅程中所有的照相和心情的足迹,也可以透过Facebook,将你的旅行日记分享给所有的朋友。
很详细的Android日记本编写源码 感兴趣的可以看一下!
安卓Android源码——日记本.zip
Android多媒体日记本Demo,包含新建日记本、管理日记、查看日记、听日记、看日记等功能。可以用于学习Android多媒体应用的练习。
MoodDiary是基于Java开发的Android日记APP,具有客户端和服务器两部分。前端使用Android Studio IDE 开发,后端使用Eclipse IDE开发。资源中附有客户端和服务器端所有源代码,另外还附有演示视频和设计文档,文档中...