Heim > Java > javaLernprogramm > Hauptteil

Beispielcode für die gemeinsame Nutzung von Schnittstellenrückrufen in Java

黄舟
Freigeben: 2017-07-20 14:22:51
Original
1230 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich relevante Informationen zur detaillierten Erklärung von Java-Schnittstellen-Callback-Instanzen vorgestellt. Der sogenannte Callback ist die Verwendung von Polymorphismus in Java.

Detaillierte Erklärung von Java-Schnittstellenrückrufinstanzen

Die offizielle Definition des Schnittstellenrückrufs lautet zunächst wie folgt: Der sogenannte Rückruf: Dies bedeutet, dass Klasse A eine Methode C in Klasse B aufruft und dann Klasse B in wiederum ruft Methode D, D in Klasse A auf. Diese Methode wird Callback-Methode genannt. Das klingt etwas kompliziert, aber wir können Interface-Callbacks so verstehen: Wir wollen zum Beispiel wissen, wann Herr Wang von nebenan nach Hause kommt? Aber wir haben unsere eigenen Dinge zu erledigen und können Lao Wang nicht ständig im Auge behalten, also können wir Sicherheitsleute aus der Gemeinde anheuern, um diese Aufgabe zu erledigen. Als Lao Wang nach Hause kommt, ruft uns der Sicherheitsmann an, um uns zu sagen, dass Lao Wang ist zurück! Damit ist die Bereitstellung eines Ereignisses abgeschlossen.

Zuerst definieren wir eine Schnittstelle:


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

Definieren Sie eine Klasse zur Implementierung dieser Schnittstelle:


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); 
      } 
 
    } 
 
  } 
}
Nach dem Login kopieren

Rufen Sie die obige Methode auf der Netzwerkanforderungsebene auf:


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); 
      } 
    }); 
  } 
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBeispielcode für die gemeinsame Nutzung von Schnittstellenrückrufen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage