So habe ich eine Aktivität mit ein paar Tasten jeweils mit einem TextView unten, wenn ich auf die Schaltfläche ein Dialog Fragment mit einem EditText und einem "Fertig" -Button erscheint, schreibe ich etwas in der EditText, klicken Sie auf "Done" und Ti ändert den Text unter der Schaltfläche, die ich geklickt habe, das funktioniert gut. Was ich brauche, ist den vorherigen Text durch den neuen Text in den gemeinsamen Voreinstellungen zu ersetzen, die ich bereits habe.Android: Zugriff auf SharedPreferences innerhalb eines DialogFragments
Mein SharedPreferences: SharedPreferences prefs = getPreferences(Context.MODE_PRIVATE);
den Dialog öffnen und die ID des Textview vorbei:
fm = getFragmentManager();
myFragment = new Fragment_Subject_Edit();
FirstButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Bundle data = new Bundle();
data.putInt("ID", FirstText.getId());
myFragment.setArguments(data);
myFragment.show(fm, "ClassEditor");
return false;
}
});
Recieve ID im Dialog Fragment:
if (getArguments() != null) {
Bundle data = getArguments();
int id = data.getInt("ID");
mTextView = (TextView) getActivity().findViewById(id);
}
den neuen Text an die unten Textview Hinzufügen der Knopf:
DoneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String newText = mEditText.getText().toString();
mTextView.setText(newText);
getDialog().dismiss();
}
});
hier die Frage ist wirklich nur, wie die Gemeinsame Einstellungen zu aktualisieren
Okay, das funktioniert, also muss ich jetzt eine Bedingung für jeden Schlüsselwert erstellen oder gibt es eine einfachere Möglichkeit zu überprüfen, welche Schaltfläche angeklickt wurde, und den entsprechenden Schlüssel auszuwählen? –
Sie können 'onClickListener' in Ihr Fragment 'implementieren' und können Ihre Bedingungen in' switch/case' Blöcken überprüfen. –
Okay, das funktioniert, danke! –