提交 f96cf539 编写于 作者: J jessyan

Improve IFragment

上级 1cc06ca5
......@@ -16,6 +16,7 @@
package com.jess.arms.base.delegate;
import android.os.Bundle;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
......@@ -85,7 +86,7 @@ public interface IFragment {
/**
* 通过此方法可以使 Fragment 能够与外界做一些交互和通信, 比如说外部的 Activity 想让自己持有的某个 Fragment 对象执行一些方法,
* 建议在有多个需要与外界交互的方法时, 统一传 Message, 通过 what 字段来区分不同的方法, 在 {@link #setData(Object)}
* 建议在有多个需要与外界交互的方法时, 统一传 {@link Message}, 通过 what 字段来区分不同的方法, 在 {@link #setData(Object)}
* 方法中就可以 {@code switch} 做不同的操作, 这样就可以用统一的入口方法做多个不同的操作, 可以起到分发的作用
* <p>
* 调用此方法时请注意调用时 Fragment 的生命周期, 如果调用 {@link #setData(Object)} 方法时 {@link Fragment#onCreate(Bundle)} 还没执行
......@@ -93,30 +94,30 @@ public interface IFragment {
* 然后才创建的 Presenter, 如果要做一些初始化操作,可以不必让外部调用 {@link #setData(Object)}, 在 {@link #initData(Bundle)} 中初始化就可以了
* <p>
* Example usage:
* <pre>
* public void setData(Object data) {
* if (data != null && data instanceof Message) {
* switch (((Message) data).what) {
* case 0:
* loadData(((Message) data).arg1);
* break;
* case 1:
* refreshUI();
* break;
* default:
* //do something
* break;
* }
* }
* }
*
* call setData(Object):
*
* Message data = new Message();
* data.what = 0;
* data.arg1 = 1;
* fragment.setData(data);
* </pre>
* <pre> {@code
public void setData(Object data) {
if (data != null && data instanceof Message) {
switch (((Message) data).what) {
case 0:
loadData(((Message) data).arg1);
break;
case 1:
refreshUI();
break;
default:
//do something
break;
}
}
}
// call setData(Object):
Message data = new Message();
data.what = 0;
data.arg1 = 1;
fragment.setData(data);
} </pre>
*
* @param data 当不需要参数时 {@code data} 可以为 {@code null}
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册