Сохраняйте ImageView в действии статически - PullRequest
0 голосов
/ 05 марта 2019

В моем коде у меня есть 2 действия, первое из которых - "telaInicial" (навигационный инструмент, работающий как меню), когда я нажимаю на "criarAnalise", оно переходит к другому с именем "Analise", на этапе анализа "У меня есть 4"пустые изображения, когда пользователь нажимает определенную кнопку, изображение1, или 2, или 3, или 4 меняет его на другое.

У меня также есть кнопка, которая использует "finish ()", чтобы пользователь мог вернуться назадк первой деятельности.Я хотел что-то сделать, чтобы сохранить изображения, даже после закрытия действия «Анализ», поэтому, если пользователь снова перейдет к этому действию, выбранные изображения будут там, а не пустыми.

АнализУпражнение:

 public boolean onNavigationItemSelected(MenuItem item) {

    int id = item.getItemId();

    if (id == R.id.reator1) {
        fotoequipamento=R.drawable.reatorcomaquecimento;
        Toast.makeText(Analise.this,"Equipamento adicionado com sucesso.", Toast.LENGTH_SHORT).show();
      enviarImg1();

    } else if (id == R.id.reator2) {
       fotoequipamento=R.drawable.reatorfluidizado;
        Toast.makeText(Analise.this,"Equipamento adicionado com sucesso.", Toast.LENGTH_SHORT).show();
        enviarImg1();
    } else if (id == R.id.tanque1) {
        fotoequipamento=R.drawable.tanquecilindrico;
        Toast.makeText(Analise.this,"Equipamento adicionado com sucesso.", Toast.LENGTH_SHORT).show();
        enviarImg1();
    } else if (id == R.id.tanque2) {
        fotoequipamento=R.drawable.tanqueesferico;
        Toast.makeText(Analise.this,"Equipamento adicionado com sucesso.", Toast.LENGTH_SHORT).show();
        enviarImg1();
    } else if (id == R.id.caminhao) {
        fotoequipamento=R.drawable.caminhaotransp;
        Toast.makeText(Analise.this,"Equipamento adicionado com sucesso.", Toast.LENGTH_SHORT).show();
        enviarImg1();
    } else if (id == R.id.voltar) {
       finish();

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}
 public void enviarImg1{


    //HERE THE USER WILL CHOOSE WHAT PICTURE HE WANTS TO PLACE WHERE
    if ((int) equipamento1.getTag() == R.drawable.branco) {
        equipamento1.setImageResource(fotoequipamento);
        equipamento1.setTag(fotoequipamento);
        botaoapagar1.setVisibility(View.VISIBLE);}

        else if ((int) equipamento2.getTag() == R.drawable.branco) {
        equipamento2.setImageResource(fotoequipamento);
        setapreta1.setVisibility(View.VISIBLE);
        equipamento2.setTag(fotoequipamento);
        botaoapagar2.setVisibility(View.VISIBLE);}

    else if ((int) equipamento3.getTag() == R.drawable.branco) {
        equipamento3.setImageResource(fotoequipamento);
        setapreta2.setVisibility(View.VISIBLE);
        equipamento3.setTag(fotoequipamento);
        botaoapagar3.setVisibility(View.VISIBLE);}
    else if ((int) equipamento4.getTag() == R.drawable.branco) {
        equipamento4.setImageResource(fotoequipamento);
        setapreta3.setVisibility(View.VISIBLE);
        equipamento4.setTag(fotoequipamento);
        botaoapagar4.setVisibility(View.VISIBLE);} else {Toast.makeText(Analise.this,"Espaço indisponível no diagrama.", Toast.LENGTH_SHORT).show();} }

    }

Я пытался использовать saveinstance, но не знаю как.

1 Ответ

0 голосов
/ 05 марта 2019

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

С другой стороны, глобальная переменная типа mainActivity или переменная класса приложения будет хранить данные до закрытия приложения.Когда приложение закрыто или уничтожено другим приложением или ОС, вы потеряете данные.

...