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); }
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); } } } }
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); } }); } }
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!