将ImageView静态保存到活动中

时间:2019-03-05 08:17:36

标签: android android-activity imageview onsaveinstancestate

在我的代码中,我有2个活动,第一个是“ telaInicial”(用作菜单的导航抽屉),当我单击“ criarAnalise”时,转到另一个名为“ Analise”的活动,在Analise活动中我有4个活动空白图像,当用户按下某个按钮时,图像1或2或3或4将其更改为另一图像。

我还有一个使用“ finish()”的按钮,因此用户可以返回到第一个活动。我想做一些事情来保存图像,即使关闭活动“ Analise”后也是如此,因此,如果用户再次进入该活动,则他选择的图像将在那里,而不是空白。

分析活动:

 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 :(得分:0)

您可以按用户将所有选择的图像保存在mainActivity之类的全局变量中,也可以将其保存在应用程序类变量中,或者使用众所周知的sharedpreference存储数据,以供以后使用,即使在一段时间或几天后重新启动应用程序。您可以从sharedpreference恢复选定的图像。

另一方面,诸如mainActivity之类的全局变量或应用程序类变量将存储数据,直到应用程序关闭。当应用程序关闭或被另一个应用程序或操作系统杀死时,您将丢失数据。