I have been over 2 references and tried my best to understand the communication between 2 fragments. With the help from a previous question on here + the 2 references I was able to come up with this code. What would I have to put in my FragB to retrieve the choice the user made in ListFragment FragA?
Main Activity:
public class MainActivity extends Activity implements OnDataPass{
...
@Override
public void onDataPass(String data) {
// TODO Auto-generated method stub
FragA transaction1 = ((FragA) getFragmentManager().findFragmentByTag("ItemRoleList"));
transaction1.dataPasser.onDataPass(data);
}
}
Here is FragA:
public class FragA extends ListFragment{
OnDataPass dataPasser;
public interface OnDataPass{
public void onDataPass(String data);
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
dataPasser = (OnDataPass) a;
} catch (ClassCastException e) {
throw new ClassCastException(a.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
Here is what i understood. You have tow fragments(A, B) in an activity. A is a list fragment. on selecting an item in A, you have to pass a String to B.
First override onListItemClick() in your Fragment A
FragemtA:
public class FragmentA extends ListFragment{
...
void onListItemClick(ListView l, View v, int position, long id){
datapasser.onDatapass(data)//here pass the String
}
}
In your activity's onDataPass method:
void onDataPass(String data){
FragmentB dataUser = getFragmentB();//Your FragmentB object
dataUser.use(data);
}
Fragment B:
public class FragmentB extends Fragment{
...
void use(String data){
//here use the data
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With