Сохраните и загрузите использованное изображение - PullRequest
0 голосов
/ 10 октября 2018

У меня есть тестовое приложение, которое меняет изображение на кнопке.Мое тестовое приложение должно иметь 3 функции.1. Когда вы нажимаете кнопку изображения, меняете фоновое изображение кнопки с изображения 0 на изображение 1. (Я могу это сделать). Когда вы нажимаете кнопку сохранения, должно быть записано, какое изображение стоит на кнопке изображения.,(Я не могу этого сделать) При перезапуске приложения, при нажатии на кнопку загрузки, должно появиться изображение на кнопке изображения, которое было сохранено с помощью кнопки сохранения

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btnSave:
            saveText();
            break;
        case R.id.btnLoad:
            loadText();
            break;
        case R.id.cardButton:
            cardButton.setImageResource(R.drawable.n01);
            cardButton.setTag(R.drawable.n01);
            Integer resource = (Integer)cardButton.getTag();
        default:
            break;
    }
}
void saveText() {
    sPref = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor ed = sPref.edit();
    "some code"
    ed.apply();
    Toast.makeText(this, "Text saved", Toast.LENGTH_SHORT).show();
}
void loadText() {
    sPref = getPreferences(MODE_PRIVATE);
    "some code"
    Toast.makeText(this, "Text loaded", Toast.LENGTH_SHORT).show();
}

1 Ответ

0 голосов
/ 11 октября 2018

Существует несколько контекстов, чтобы посмотреть на этот сценарий.

  1. если мы используем одно предпочтение в действии, тогда мы используем метод getPreferences(), чтобы получить общие предпочтения, иначе мы пойдем на getSharedPreferences() метод.чтобы посмотреть больше, пожалуйста, обратитесь: https://developer.android.com/training/data-storage/shared-preferences
  2. , чтобы сохранить в общих настройках, что мы должны использовать метод editor.apply() или editor.commit(), чтобы посмотреть больше, пожалуйста, обратитесь: В чем разница между commit ()и применить () в Общем предпочтении .Здесь a хотел бы предложить вам использовать метод editor.commit(), чтобы вы могли получить ответ о сохранении значения в общих настройках.

и еще одна вещь заключается в том, что если вы хотите сохранить imageId в общих настройках, для этого вам сначала нужно получить идентификатор ресурса изображения, который сохранит его в настройках.например:

 ImageView imageView = (ImageView)findViewById(R.id..imageName);
int imageid = getResourceId(this,"profiles","drawable", getPackageName());
//save this imageid into your shareedPreferences and getback when you return.
// set this image id into the imageVire
imageView.setImageResouce(imageid);

public static int gerResourceId(context context, String variableName, String resourceName, String pakageName) throws RuntimeException{
     return context.getResources().getIdentifier( variableName, resourceName, pakageName);
}

, если требуется какая-либо другая помощь, так что, пожалуйста, добро пожаловать, и я надеюсь сделать правильный поток общих настроек, эта проблема будет решена, если и только если остальная часть кода работает нормально.спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...