Maison  >  Article  >  Java  >  Exemple de partage de code sur les rappels d'interface en Java

Exemple de partage de code sur les rappels d'interface en Java

黄舟
黄舟original
2017-07-20 14:22:511226parcourir

Cet article présente principalement des informations pertinentes sur l'explication détaillée des instances de rappel de l'interface Java. Le soi-disant rappel est l'utilisation du polymorphisme en Java. Les amis qui en ont besoin peuvent se référer à

Explication détaillée. des instances de rappel d'interface Java

Tout d'abord, la définition officielle du rappel d'interface est la suivante Ce qu'on appelle le rappel : cela signifie que la classe A appelle une méthode C dans la classe B, puis la classe B. appelle à son tour la méthode D, D dans la classe A. Cette méthode est appelée méthode de rappel. Cela semble un peu compliqué, mais nous pouvons comprendre les rappels d'interface de cette façon : par exemple, nous voulons savoir quand M. Wang d'à côté rentrera à la maison ? Mais nous avons nos propres choses à faire et ne pouvons pas garder un œil sur Lao Wang tout le temps, nous pouvons donc embaucher des agents de sécurité de la communauté pour accomplir cette tâche. Lorsque Lao Wang rentre à la maison, l'agent de sécurité nous appelle pour nous dire que Lao. Wang est de retour ! Ceci termine la livraison d'un événement ;

Nous définissons d'abord une interface :


public interface DynamicMessageListener { 
/** 
 * 获取网络数据, 
 * @param bean bean 对象 
 */ 
void getDynamicData(List<DynamicBean.DataBean> bean, boolean isMore); 
}

Définissez une classe pour implémenter cette interface :


public class DynamicFragment extends Fragment implements DynamicMessageListener { 
//初始化监听者 
  private DynamicMessageListener listener; 
/** 
   * 获取网络数据 
   * 
   * @param bean bean 对象 
   */ 
 
  @Override 
  public void getDynamicData(List<DynamicBean.DataBean> bean, boolean isMore) { 
    if (bean != null && bean.size() > 0) { 
      if (!isMore) { 
        adapter = new DynamicAdapter(mContext, bean, this, classID); 
        friendLv.setAdapter(adapter); 
        adapter.setListener(this); 
        LLog.e("activity------有数据"); 
      } else { 
        adapter.setData(bean); 
      } 
 
    } 
 
  } 
}

Appelez la méthode ci-dessus au niveau de la couche de requête réseau :


public class DynamicModel extends BaseModel { 
 
 
  private Context mContext; 
  private NetUtils net; 
  private DynamicMessageListener listener; 
 
  public DynamicModel(Context mContext, DynamicMessageListener listener) { 
    this.mContext = mContext; 
    net = NetUtils.getInstance(); 
    this.listener = listener; 
  } 
/** 
   * 加载网络数据, 
   * @param url  网络url 
   * @param params 请求网络携带的参数 
   */ 
  public void loadData(String url, RequestParams params) { 
    net.sendGetRequest(url, params, new NetUtils.NetUtilsCallBack() { 
      @Override 
      public void getNetdata(String json) { 
        if (json != null) { 
          Gson gson = new Gson(); 
          DynamicBean bean = gson.fromJson(json, DynamicBean.class); 
          List<DynamicBean.DataBean> data = bean.getData(); 
          listener.getDynamicData(data, false); 
          if(data ==null||data.size() <=0 ){ 
            listener.friendsNoData(false); 
            LLog.e("没有数据-----"); 
          } 
        } 
      } 
      @Override 
      public void loadError(int a) { 
        showError(a, mContext); 
      } 
    }); 
  } 
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn