在Fragment中:
1.
// 定義一個回調接口,該Fragment所在Activity需要實現該接口
// 該Fragment將通過該接口與它所在的Activity交互
{
public void onItemSelected(Integer id);
}
2.
// 當該Fragment被添加、顯示到Activity時,回調該方法
public void onAttach(Activity activity)
{
super.onAttach(activity);
// 如果Activity沒有實現Callbacks接口,拋出異常
if (!(activity instanceof Callbacks))
{
throw new IllegalStateException(
"BookListFragment所在的Activity必須實現Callbacks接口!");
}
// 把該Activity當成Callbacks對象
mCallbacks = (Callbacks)activity;
}
3.
// 當用戶單擊某列表項時激發該回調方法
@Override
public void onListItemClick(ListView listView
, View view, int position, long id)
{
super.onListItemClick(listView, view, position, id);
// 激發mCallbacks的onItemSelected方法
mCallbacks.onItemSelected(position);
}
在Activity中:
1.實現接口
public class MainActivity extends Activity implements
BookListFragment.Callbacks
2.覆寫接口中定義的方法
// 實現Callbacks接口必須實現的方法
@Override
public void onItemSelected(Integer id)
{
//....
}
當Fragment中的相應事件被觸發,會在Fragment中通過mCallbacks引用調用Activity中的方法.