Я создал обратный вызов через интерфейс с двумя методами.Обратный вызов находится между классом NonActivity и фрагментом.Проблема в том, что вызывается только один невидимый интерфейсный метод.И другой видимый интерфейсный метод не вызывается.Я скопировал код интерфейса и оба класса. МОЯ ЦЕЛЬ - ТО, ЧТО ОБА СПОСОБЫ ВЫЗОВА НЕВИДИМЫ () И ВИДИМЫ () ДОЛЖНЫ БЫТЬ ВЫЗВАНЫ В РАЗНЫЕ ВРЕМЕНИ, КОГДА ТРИГГЕРНЫЕ .Я несколько озадачен тем, что не могу получить определенную функциональность.
public interface MyCustomListener {
void invisible();
void visible();
}
Код класса NonActivity выглядит следующим образом:
public class Operations {
private Context context;
private RecyclerView recyclerView;
private RecyclerView.Adapter adapter;
private MyCustomListener listener;
public void setMyCustomListener(MyCustomListener listener) {
this.listener = listener;
}
public Operations(Context context, RecyclerView recyclerView) {
this.context = context;
this.recyclerView = recyclerView;
}
public void getView(int number) {
Perform pa = new Perform(context);
Long count = pa.count(number);
if (count > 0) {
ArrayList arrayList = pa.getAllList(number);
adapter = new AdapterMovie(context, arrayList, recyclerView, number);
recyclerView.setAdapter(adapter);
if (listener != null)
listener.invisible();
}
else if (count < 1) {
recyclerView.setAdapter(null);
if (listener != null)
listener.visible();
}
}
}
Код класса Fragment выглядит следующим образом:
public class Frag extends Fragment {
private int fragmentNumber = 0;
private Operations fo;
private RecyclerView recyclerView;
private TextView message;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag, container, false);
fo = new Operations(getActivity(), recyclerView);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
fo.setMyCustomListener(new MyCustomListener() {
@Override
public void invisible() {
Toast.makeText(getActivity(), "invisible", Toast.LENGTH_SHORT).show();
}
@Override
public void visible() {
Toast.makeText(getActivity(), "visible", Toast.LENGTH_SHORT).show();
}
});
}
}