I must say the task of interface implementations is no
walking in a park, or perhaps walking that same park in middle of the night,
with fear of irrevocable beaten up possibilities only to be garbage collected
in the morning by a hobo. That being said it is very simple, once u understand
the core procedures to make one (so is nuclear
rocket science, dah!).
follow these steps We have two fragments called
AddFragment
and ListFragment
,
and upon adding an item on first fragment you want the updated list be
shown on list fragment (what sort of sorcery is this!!!).Step 1 create the listener interface on class level of AddFragment with a method that is going to be implemented by the other guy (ListFragment ) and create Interface type variable
public class AddFragment extends Fragment{
//listener varriable
//listener
public interface OnCategoryAddedListener{
public void refreshList();
}
private static OnCategoryAddedListener meAddListener;
}
Step 2 create register method on class level of the same AddFragment class and set listenter variablepublic class AddFragment extends Fragment{
public void registerListener(OnCategoryAddedListener listener)
{
meAddListener = listener;
}
}
Step 3 upon any event cud be button click or yelling at ur
application(that is considered rude event in android :-) ) check for
listener object meAddListener
variable and call the interface,
in a Shakespeare’s nutshell it means “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 On ListFragment implement the AddFragment’s interface,no turning back just go implement its method. Within that method u just call
abracadabra
to repopulate ur list or any sort of updatable android view object… and ur donepublic class ListFragment extends Fragment implements AddFragment.OnCattegoryAddedListener{ //refer to AddFragment AddFragment addFragment;
ArrayAdapter<String> catArrayAdapter;
//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() { 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(){
catArrayAdapter.clear;
catArrayAdapter.addAll(getItems);
catArrayAdapter.
}
notifyDataSetChanged();