软件编程
位置:首页>> 软件编程>> Android编程>> Android在自定义类中实现自定义 * 方式

Android在自定义类中实现自定义 * 方式

作者:Simon_Qi  发布时间:2023-06-17 08:37:34 

标签:Android,自定义,类, ,

* 可以说是Android开发中最常用的东西之一。我们通过 * 可以监听对象的各种变化事件,并进行一些需要的处理,相当有用,而且使用起来也很简单。其实, * 就相当于C++中的回调函数,达到条件就回调执行。

很多时候,我们在自定义控件类中也需要实现一些属性变化的 * ,实现跟原生控件 * 一样的功能。以下分几个步骤说明自定义 * 实现和使用(以自定义类MyClass加载完成 * 为例):

一、自定义 * 的实现:

1、 定义一个加载完成监听接口


//加载监听接口
public static interface LoadingListener {
public void onFinishedLoading(boolean success);
}

在MyClass自定义类中定义一个加载完成监听接口LoadingListener,接口中声明一个方法onFinishedLoading给使用该接口的类实现具体过程,success表示是否加载成功.

2、 声明接口并实现一个设置 * 的方法

声明LoadingListener接口

private LoadingListener mLoadingListener;

提供设置LoadingListener方法


public void setLoadingListener(LoadingListener listener) {
mLoadingListener = listener;
}

3、 对应的情况下调用该接口的方法

在MyClass加载完成的时候则调用监听接口的方法

mLoadingListener.onFinishedLoading(true);

二、自定义 * 的使用:

1、给MyClass的实例实现监听接口中方法


mMyClass.setLoadingListener(new MyClass.LoadingListener() {
  @Override
  public void onFinishedLoading(boolean success) {
  //执行必要的处理
 }
}

在onFinishedLoading函数中实现自定义的逻辑则可。

补充知识:android Activity 给 Fragment 设置回调的方法

这个实现方法很简单,可分为3步走:

1.在fragment中定义接口

2.在activity的定义时实现这个接口

3. 在fragment中的 onAttach 方法中 将 Context 转为 相应的接口;

代码如下:


public class AllFragment extends Fragment {

//......代码省略

@Override
public void onAttach(Context context) {
 super.onAttach(context);
 mOnChangeTabListener = (OnChangeTabListener) context;
}

public interface OnChangeTabListener{
 void onChangeTab(String tag);
}
}

在activity的定义时实现该接口,如下:


public class SearchActivity extends AppCompactActivity implements AllFragment.OnChangeTabListener {

//代码省略
@Override
public void onChangeTab(String tag) {
 if ("应用".equals(tag)){
  mViewPager.setCurrentItem(1);
 }else {
  mViewPager.setCurrentItem(2);
 }
}
}

来源:https://blog.csdn.net/u010403463/article/details/41820423

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com