Здесь есть небольшая проблема. Как у меня было Recyclerview в диалоговом фрагменте. т.е. имя банка в recyclerview. Когда мы выбираем один банк в recyclerview и после отклонения диалогового фрагмента, это имя должно отображаться на кнопке, то есть когда мы выбрали Union Bank из фрагмента диалога он должен появиться на кнопке.Проблема в том, что когда мы нажимаем на кнопку, ее текст меняется, а не во время отключения слушателя
вот код закрытия диалога:
mRecyclerView.addOnItemTouchListener(new RecyclerTouchListener(getContext(), mRecyclerView, new ClickListener() {
@Override
public void onClick(View view, final int position) {
Employee e = bank.get(position);
Toast.makeText(getContext(), e.getBank_id() + "" + e.getBank_name(), Toast.LENGTH_SHORT).show();
getDialog().setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
Employee e = bank.get(position);
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getContext());
SharedPreferences.Editor edit = sp.edit();
edit.putString("bankname", e.getBank_name());
edit.commit();
}
});
c.onItemSelect(e.getBank_name());
onDismiss(getDialog());
}
Вот событие onclick, в котором открывается диалоговое окно и где должно быть напечатано значение:
select_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager fm=getFragmentManager();
DialogRecyclerview dr = new DialogRecyclerview(AccountManagement_banks.this,callback);
dr.setRetainInstance(true);
dr.show(getSupportFragmentManager(), "Dialog");
SharedPreferences st = PreferenceManager.getDefaultSharedPreferences(AccountManagement_banks.this);
String mode=st.getString("bankname","");
select_button.setText(mode);
Toast.makeText(getApplication(),mode,Toast.LENGTH_SHORT).show();
}
});
То же в:
@Override
public void onItemSelect(String text) {
select_button.setText(text);
}
Здесь я создал новый интерфейс:
public interface CallBack {
void onItemSelect(String text);}