I want to implement View.onClickListener inside DialogPlus but i dont know how to implement it inside Dialogbox . I have implemented and overriden onClickListener in ExpenseFragment class and performed fab.setOnClickListener(this) it's working fine.
In the same way i also want to perform someIV.setOnClickListener(this) and perform required action in dialogView which is inside addNote().
Here's my code ....
public class ExpenseFragment extends Fragment implements View.OnClickListener {
private TextView totalExpenseTV;
private FloatingActionButton fab;
private RecyclerView recyclerView;
private ImageView filterIcon;
private PieChart pieChart;
private Animation rotateForward, rotateBackward;
private FirebaseRecyclerOptions<ExpenseModel> options;
private MyAdapter adapter;
private int calendarImgClick = 0;
public void onViewCreated(@NonNull View attachInParentView, Bundle savedInstanceState) {
super.onViewCreated(attachInParentView, savedInstanceState);
findViewByIDS(attachInParentView);
setupRecyclerView();
fabAnimation();
fab.setOnClickListener(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_expense, container, false);
}
private void fabAnimation() {
rotateForward = AnimationUtils.loadAnimation(getActivity(), R.anim.rotate_forward);
rotateBackward = AnimationUtils.loadAnimation(getActivity(), R.anim.rotate_backward);
rotateBackward.setDuration(300);
rotateForward.setDuration(300);
}
@Override
public void onClick(View view) {
fab.startAnimation(rotateForward);
rotateForward.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
addNote();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
private void addNote() {
if (getActivity() != null) {
DialogPlus dialog = DialogPlus.newDialog(getActivity())
.setContentHolder(new ViewHolder(R.layout.add_expense_layout))
.setExpanded(false)
.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogPlus dialog) {
fab.startAnimation(rotateBackward);
}
})
.create();
View myView = dialog.getHolderView();
TextView expense_date = myView.findViewById(R.id.expense_date);
EditText expense_title = myView.findViewById(R.id.expense_title);
EditText expense_amount = myView.findViewById(R.id.expense_amount);
Button add_note_button = myView.findViewById(R.id.add_note_btn);
ImageView calendarImg = myView.findViewById(R.id.add_calendar);
CalendarView calendarView = myView.findViewById(R.id.calenderView);
LinearLayout linearLayout = myView.findViewById(R.id.linearCalenderLayout);
ImageView grocery = myView.findViewById(R.id.grocery);
ImageView bike = myView.findViewById(R.id.bike);
ImageView rent= myView.findViewById(R.id.rent);
ImageView foods = myView.findViewById(R.id.foods);
ImageView beer= myView.findViewById(R.id.beer);
LinearLayout categoryIconsLayout = myView.findViewById(R.id.categoryIconsLayout);
TextView selectCategory_heading = myView.findViewById(R.id.selectCategory_heading);
calendarImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setCalendarVisibility(linearLayout, selectCategory_heading, categoryIconsLayout);
}
});
dialog.show();
}
}
private void setCalendarVisibility(LinearLayout setCalendarVisible, TextView setSelectCateVisible, LinearLayout iconsLayoutVisible) {
calendarImgClick++;
if (calendarImgClick >= 2) {
setCalendarVisible.setVisibility(View.GONE);
setSelectCateVisible.setVisibility(View.VISIBLE);
iconsLayoutVisible.setVisibility(View.VISIBLE);
calendarImgClick = 0;
} else {
setCalendarVisible.setVisibility(View.VISIBLE);
setSelectCateVisible.setVisibility(View.GONE);
iconsLayoutVisible.setVisibility(View.GONE);
}
}
private void animateCalendarView(LinearLayout ll, CalendarView cv) {
ll.animate().rotationBy(-180f).setDuration(500);
cv.animate().rotationBy(180f).setDuration(400);
}
private void findViewByIDS(View v) {
totalExpenseTV = v.findViewById(R.id.totalRsTitle);
fab = v.findViewById(R.id.fab);
recyclerView = v.findViewById(R.id.recyclerView);
filterIcon = v.findViewById(R.id.filterIcon);
pieChart = v.findViewById(R.id.pieChartHis);
}
private void setupRecyclerView() {
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(null);
if (getActivity() != null) {
Query query = FirebaseReference.expenseReference(getActivity())
.orderByChild("milli");
options = new FirebaseRecyclerOptions.Builder<ExpenseModel>()
.setQuery(query, ExpenseModel.class)
.build();
adapter = new MyAdapter(options, getActivity());
recyclerView.setAdapter(adapter);
}
}
// OS operations starts here . . . . . . .
@Override
public void onStart() {
super.onStart();
adapter.startListening();
}
@Override
public void onStop() {
super.onStop();
adapter.stopListening();
}
@Override
public void onDestroy() {
super.onDestroy();
adapter.stopListening();
}
}