sharedPreferencesに保存した後、ListViewに新しい値を設定する際に問題があります。絵で AlertDialogに新しい値を設定した後でListViewを更新しますか?
私は(私のために説明しやすい)私のスマートフォンの画面上で見ることができるものを見ることができます。今すぐItem "Korrektur-Faktor"を押すと、AlertDialogが開き、私は新しい値を設定できます。私は今、保存を押すと、新しい値(80)はSharedPreferencesに保存されますが、私のListViewItemの2行目に値が自動的に更新されることはありません。ここで
いくつかのコード:
String secLineCorrect = correctvalue.toString();
ValueSettings targetValue = new ValueSettings("Zielwert", "getTargetSharedPref"); //TODO
ValueSettings correctFactor = new ValueSettings("Korrektur-Faktor", secLineCorrect + " mg/dl pro 1IE");
//Füllen der ListView
final ArrayList<ValueSettings> valuesSettingsList = new ArrayList<>();
valuesSettingsList.add(targetValue);
valuesSettingsList.add(correctFactor);
final ValueSettingsListAdapter valuesSettingsAdapter = new ValueSettingsListAdapter(this, R.layout.settings_list_item_two_lines, valuesSettingsList);
lvValues.setAdapter(valuesSettingsAdapter);
//Klickbare Items
lvValues.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch(position){
//First Item in List
case 0:
Toast.makeText(SettingsActivity.this, "You clicked on: " + valuesSettingsList.get(position).getFirstLine() + "mit Item Nummer" + position, Toast.LENGTH_SHORT).show();
break;
//Second Item in List
case 1:
AlertDialog.Builder mBuilder = new AlertDialog.Builder(SettingsActivity.this);
View mView = getLayoutInflater().inflate(R.layout.dialog_correctfactor,null);
final EditText mCorrectFactor = (EditText) mView.findViewById(R.id.et_correct_factor_input);
Button mCancel = (Button) mView.findViewById(R.id.btn_cancel);
Button mSave = (Button) mView.findViewById(R.id.btn_save);
mBuilder.setView(mView);
final AlertDialog dialog = mBuilder.create();
dialog.show();
//Click on Cancel
mCancel.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(SettingsActivity.this, "Abgebrochen. Kein neuer Wert eingespeichert!", Toast.LENGTH_SHORT).show();
}
});
//Click on Save
mSave.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
if(mCorrectFactor.getText().length() > 0){
correctvalue = Integer.parseInt(mCorrectFactor.getText().toString());
editor.putInt(correctValueKEY, correctvalue);
editor.commit();
Toast.makeText(getApplicationContext(), "1 IE entspricht " + correctvalue + " mg/dl.", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(getApplicationContext(), "Wert ist auf " + correctvalue + " md/dl gesetzt. Keine Änderung vorgenommen.", Toast.LENGTH_LONG).show();
}
dialog.cancel();
}
});
break;
}
}
});
あなたは、私がコードの先頭にテキストを設定見ることができるように。だから私が前に救った新しい価値が見えるようになるたびに、私はメインアクティビティに戻り、設定を開始する必要があります。しかし、今度は、私がsaveを押してAlertDialogを閉じた後、新しい値が表示されます。私はそんなに試しましたが、解決策を得ることはありません。 誰かが私を助けてくれるかもしれません:)
https://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html – EpicPandaForce