У меня есть несколько фрагментов в одном действии, которые должны иметь возможность передавать данные между ними. Я использовал учебники для реализации обратных вызовов. My MainActivity - это внешний класс, в котором мои классы фрагментов. Кроме того, у меня есть FragmentPagerAdapter, который обрабатывает переходы фрагментов. Ну, дело в том, что Eclipse не позволит мне реализовать мой интерфейс обратного вызова, который включен в один из фрагментов, для моего внешнего класса MainActivity.Android: Внедрение внутреннего класса во внешнем классе; обратный вызов из внутреннего класса и внешнего класса
Это структура моего кода:
public class MainActivity extends FragmentActivity **implements ConnectionFragment.dataCallback**{
//compiler error here:"ConnectionFragment cannot be resolved to a type"
//when i leave this out i get runtime error: "MainActivity java must
//implement dataCallback"
...
public class SectionsPagerAdapter extends FragmentPagerAdapter implements ConnectionFragment.dataCallback{
@Override
public void updateLog(View v, String line) {
DataFragment dataFrag = (DataFragment)getSupportFragmentManager().findFragmentByTag(DataFragment.class.getName());
if (dataFrag != null){
dataFrag.updateLog(v,line);
}
}
...
}
public static class ConnectionFragment extends Fragment {
...
public interface dataCallback{
public void updateLog(View v, String line);
}
dataCallback mCallback;
private static dataCallback dummyCallback=new dataCallback(){
@Override
public void updateLog(View v, String line){
}
};
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
try {
mCallback = (dataCallback)activity;
} catch (ClassCastException e){
throw new ClassCastException(activity.toString() + " must implement dataCallback");
}
}
}
public static class DataFragment extends Fragment implements ConnectionFragment.dataCallback{
public void updateLog(View v,String line){
TextView logTextView=(TextView)v.findViewById(R.id.log_view);
logTextView.append("\n"+line);
}
...
}
public static class GraphFragment extends Fragment {
...
}
}
ConnectionFragment должны иметь возможность передавать данные в DataFragment.
Я ценю вашу помощь!
Спасибо! Это сработало. Но, к сожалению, у моего приложения все еще есть проблемы с отправкой данных из одного фрагмента в другой. Но это, как предполагается, еще один вопрос, который я предполагаю – timolemow