首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android开发中Java回调机制的使用

2012-09-29 
Android开发中Java回调机制的应用  用Java写了这么久的程序,一直没有理解什么是回调,在最近的Android开发

Android开发中Java回调机制的应用

  用Java写了这么久的程序,一直没有理解什么是回调,在最近的Android开发工作中,一个偶然的需求让我突然就对Java中的回调有了一个理解,遂记录之。

  首先这个需求是这样的,一个Activity中的有一个View,我需要在不同的触发条件下更换这个View的Layout,我们很容易想到写一个方法,把要更换成的Layout的id传进去,然后为这个View设置一下content。就可以在不同的条件下调用这个函数来设置View的layout了,这不难理解。

  但是,假设,现在该View的Layout更换成了LayoutA,LayoutA里面有一个ImageView,我要对该ImageView通过代码设置一些属性;然后,另一时刻,该View的Layout换成了LayoutB,LayoutB里面有一个Button,我要对该Button通过代码做一些设置,怎么办?

  我们可以这样解决:

class MyActivity extends Activity {View view;/*** 3.看这个函数*/@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 一些例如对view初始化工作略去// 我们在这里设置View的layout的Id为layoutId_AcurrentContentFlag = ViewA; setViewContent(R.layout.layoutId_A, new ConfigViewInterface() { // 传进去一个接口,并覆盖里面的方法public void setView(View view) {setViewA(view);}});}/*** 2.看本函数*/private void setViewContent(int layoutId, ConfigViewInterface configViewInterface) {view = LayoutInflater.from(this).inflate(layoutId, null); // 设置View的内容configViewInterface.setView(view);}/*** 4.看这两个函数*/private setViewA(View view) {}private setViewB(View view) {}/*** 1.看本接口*/private interface ConfigViewInterface {void setView(View view) ;}}

  这样是不是就好多了呢?慢慢理解下上面的代码,多少会对你有帮助的。有时候学知识,就要所练,可能当时不理解某个点,不知什么时候突然就懂了。

  欢迎拍砖。


热点排行