在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.// 当用户单击某列表项时激发该回调方法@Overridepublic 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中的方法.
时间: 2024-10-23 00:32:07