按照这些步骤
我们有两个名为AddFragment和ListFragment的片段,在第一个片段上添加一个项目后,您希望更新的列表显示在列表片段上(这是什么魔法!!!)。
第 1 步在 AddFragment 的类级别创建侦听器接口,使用将由其他人 (ListFragment) 实现的方法并创建接口类型变量
public class AddFragment extends Fragment{
//listener varriable
//listener
public interface OnCategoryAddedListener{
public void refreshList();
}
private static OnCategoryAddedListener meAddListener;
}
第2步在同一个AddFragment类的类级别上创建注册方法并设置监听器变量
public class AddFragment extends Fragment{
public void registerListener(OnCategoryAddedListener listener)
{
meAddListener = listener;
}
}
步骤 3 在任何事件 cud 是按钮单击或对您的应用程序大喊大叫时(这在 android 中被认为是粗鲁的事件 :-))检查侦听器对象 meAddListener 变量并调用接口,
用莎士比亚的话来说就是“for thou who implement ye interface and brought the method within ur class shelter, I shall give u my utmost privilege and blessing to …. ”
Step 4 在 ListFragment 上实现 AddFragment 的接口,没有回头就去实现它的方法。在该方法中,您只需调用 abracadabra 来重新填充您的列表或任何可更新的 android 视图对象……然后您就完成了
public class ListFragment extends Fragment implements AddFragment.OnCattegoryAddedListener{
//refer to AddFragment
AddFragment addFragment;
//once the fragment is within the memory scope u instantiate AddFragment
//and register listener with AddFragment context which inherently implement OnCategoryAddedListener
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
categoryAddFragment = new CategoryAddFragment();
categoryAddFragment.registerListener(this);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
fillList();
}
public void fillList() {
ArrayAdapter<String> catArrayAdapter = new ArrayAdapter<>(context,android.R.layout.simple_list_item_1,getItems());
setListAdapter(catArrayAdapter);
}
//le interface method u can count on to refresh ur list content
public void refreshList(){
fillList();
}
check this out for a little more
享受java魔法