Итак, у меня есть приложение, в котором мне нужно выбрать дату для фильтра, и выбор работает нормально, но я не могу изменить значение на экране выбора. Это где я называю SelectDateFragment
. Существует больше кода, но это не важно для этого.
public class filter extends BottomSheetDialogFragment {
public static filter getInstance() {
return new filter();
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.filter_popup, container, false);
final TextView dateTextView = (TextView) view.findViewById(R.id.KuupaevValikView);
final View button1 = view.findViewById(R.id.Nooleke1);
final View button2 = view.findViewById(R.id.KuupaevValikView);
final View button3 = view.findViewById(R.id.Nooleke3);
final View button4 = view.findViewById(R.id.Nooleke4);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Creating the instance of PopupMenu
PopupMenu popup1 = new PopupMenu(getActivity(), button1);
//Inflating the Popup using xml file
popup1.getMenuInflater()
.inflate(R.menu.filtermenuprice, popup1.getMenu());
//registering popup1 with OnMenuItemClickListener
popup1.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
((TextView)view.findViewById(R.id.HinnavahemikValikView)).setText (item.getTitle());
Toast.makeText(
getActivity(),
"You Clicked : " + item.getTitle(),
Toast.LENGTH_SHORT
).show();
return true;
}
});
popup1.show();
}}
);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
DialogFragment newFragment = new SelectDateFragment();
newFragment.show(getFragmentManager(), "DatePicker");
}
});
И это то, что он вызывает:
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
populateSetDate(yy, mm+1, dd);
}
public void populateSetDate(int year, int month, int day) {
String date = month+"/"+day+"/"+year;
Toast.makeText(getActivity(), date, Toast.LENGTH_SHORT).show();
//.setText(month+"/"+day+"/"+year);
}
}
Я хотел бы заменить button2 на строку с именем date, но я не могу этого сделать.