android - 将 ImageView 静态保存在活动中
问题描述
在我的代码中,我有 2 个活动,第一个是“telaInicial”(作为菜单工作的导航抽屉),当我单击“criarAnalise”时,它会转到另一个名为“Analise”的活动,在 Analise 活动中我有 4 个空白图像,当用户按下某个按钮时,image1 或 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,但我不知道如何。
解决方案
您可以将用户选择的所有图像保存在 mainActivity 或应用程序类变量等全局变量中,或者使用众所周知sharedpreference
的存储数据以供以后使用,即使在一段时间或几天后重新启动应用程序后也是如此。您可以从中恢复选定的图像sharedpreference
。
另一方面,全局变量mainActivity
或应用程序类变量将存储数据,直到应用程序关闭。当应用程序关闭或被其他应用程序或操作系统杀死时,您将丢失数据。