Я использую проверенные виды в моем списке. У меня есть две кнопки переключения, которые при нажатии обновляют пользовательский интерфейс. я хочу сделать свой код таким, чтобы он запоминал ранее выбранное значение, и если он остается тем же самым, кнопка будет отключена, и если она будет изменена, скажем, я переключусь на значение 2, кнопка «Готово» включена и наоборот, а также она запоминает мои предыдущие когда я вернусь к тому же самому представлению позже. Вот мой код для того же:Как мне запомнить мой выбор нажатием кнопки «Готово»?
public class ManageListDashboardFragment extends Fragment implements OnClickListener,OnCheckedChangeListener {
public final static String TAG_MANAGE_NEWS_CATEGORIES_FRAGMENT = "ManageListDashboardFragment";
private boolean mIsPersonal = true;
private boolean mIsShared = true;
private boolean mShouldbeon;
private boolean mInitialShouldbeon;
private boolean mShouldbeon1;
private boolean mInitialShouldbeon1;
protected Button mPreferencesDoneButton;
final boolean isPersonal = true;
final boolean isShared = true;
private ListsFragment mListsFragment;
ToggleButton one;
ToggleButton two;
public static ManageListDashboardFragment newInstance(final FragmentManager manager, final int animation) {
final ManageListDashboardFragment fragment = new ManageListDashboardFragment();
final Bundle arguments = new Bundle();
arguments.putInt(ANIMATION, animation);
fragment.setArguments(arguments);
final FragmentInfo fragmentInfo = new FragmentInfo(TransactionMethods.ADD, R.id.manage_news_categories_container);
fragmentInfo.setFragmentTag(TAG_MANAGE_NEWS_CATEGORIES_FRAGMENT);
FragmentStackManager.getInstance().transitionFragment(manager, fragment, fragmentInfo);
return fragment;
}
@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_manage_lists, container, false);
final Bundle arguments = getArguments();
final int animation = arguments.getInt(ANIMATION, 0);
final ManageListDashboardActivity activity = (ManageListDashboardActivity) getActivity();
if (animation != 0) {
activity.animateTitle(R.id.actionbar_title, arguments.getInt(ANIMATION, 0));
}
return view;
}
protected void setupClickListeners() {
mIsPersonal = isPersonal;
mPreferencesDoneButton = (Button) getActivity().findViewById(R.id.button_done);
Typeface face = Typeface.createFromAsset(mPreferencesDoneButton.getContext().getAssets(),
"fonts/proxima-nova-regular.ttf");
mPreferencesDoneButton.setTypeface(face);
mPreferencesDoneButton.setOnClickListener(this);
mPreferencesDoneButton.setEnabled(((ManageListDashboardActivity) getActivity()).isDoneButtonEnabled());
}
@Override
public void onActivityCreated(final Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final TextView titleView = (TextView) getActivity().findViewById(R.id.actionbar_title);
titleView.setText(R.string.manage_dashboard_lists);
initManageListDashboardFragment();
}
private void initManageListDashboardFragment() {
populateData();
setupClickListeners();
Button personalbutton = (Button) getActivity().findViewById(R.id.button_personal_list);
personalbutton.setOnClickListener(this);
Button sharedbutton = (Button) getActivity().findViewById(R.id.button_shared_list);
sharedbutton.setOnClickListener(this);
one = (ToggleButton) getView().findViewById(R.id.personal_list_toggle_control);
one.setOnCheckedChangeListener(this);
two = (ToggleButton) getView().findViewById(R.id.shared_list_toggle_control);
two.setOnCheckedChangeListener(this);
}
protected void populateData() {
SharedPreferencesManager.getInstance().updateIsUserPreferencesUpdated(false);
}
@Override
public void onClick(final View view) {
final ManageListDashboardActivity activity = (ManageListDashboardActivity) getActivity();
switch (view.getId()) {
case R.id.button_personal_list:
mIsPersonal = !mIsPersonal;
mIsShared = false;
one.setChecked(mIsPersonal);
return;
case R.id.button_shared_list:
mIsPersonal = false;
mIsShared = !mIsShared;
two.setChecked(mIsShared);
return;
case R.id.button_done:
saveUserPreferences();
DashboardFragment.getInstance().getListsFragment().setIsPersonal(mIsPersonal);
break;
default:
break;
}
activity.onBackPressed();
}
private void saveUserPreferences() {
final SharedPreferencesManager manager = SharedPreferencesManager.getInstance();
if (manager.shouldManageListDashboard() == mIsPersonal) {
manager.shouldManageListDashboard();
}
}
protected void toggleDoneButton() {
boolean isUserPreferencesUpdated = SharedPreferencesManager.getInstance().isUserPreferencesUpdated();
boolean isDoneEnabled = (
mShouldbeon != mInitialShouldbeon || mShouldbeon1 != mInitialShouldbeon1
|| isUserPreferencesUpdated);
mPreferencesDoneButton.setEnabled(isDoneEnabled);
}
public void onUpdate() {
mListsFragment.onUpdate();
}
@Override
public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
if(isChecked){
if (buttonView == one) {
two.setChecked(false);
}
else if (buttonView == two) {
one.setChecked(false);
}
}
switch (buttonView.getId()) {
case R.id.personal_list_toggle_control:
mShouldbeon = isChecked;
if(mShouldbeon = isChecked && mShouldbeon1 != isChecked){
}
break;
case R.id.shared_list_toggle_control:
mShouldbeon1 = isChecked;
if(mShouldbeon1 = isChecked && mShouldbeon != isChecked){
}
break;
default:
break;
}
toggleDoneButton();
}
}
любой пример относительно моего кода? –
Забудьте об этом, я не правильно прочитал вопрос. Задержание для меня! Сожалею. Дай мне попробовать снова. Какая у вас проблема? – Simon
Я просто пытаюсь сохранить выбранные значения в моем фрагменте. Скажем, у меня есть кнопки 1 и button2 с кнопками переключения. По умолчанию я хочу, чтобы кнопка 1 была выбрана, и кнопка была отключена до тех пор, пока я не изменю выбор, выбрав кнопку 2, после чего кнопка будет активирована и после нажатия на нее будет сохранено выбранное значение кнопки (например, в моем случае кнопка2 соответствует true). и цикл повторяется, когда я вернусь к этому представлению, где теперь я бы заметил, что кнопка2 выбрана, и кнопка 1 отменена и нажата кнопка завершения, пока я не изменю свой выбор. –