2012-07-29 197 views
1

我有一个关于在Android中保存布局文件状态的问题。例如:我有一个按钮,当我点击按钮时出现一个图像。但是当我旋转我的Android设备时,图像消失了。那么如何在布局中保存图像的状态(可见/不可见)?我知道我必须把这个在Android清单中的活动:Android保存布局状态

android:configChanges="keyboardHidden|orientation" 

在此先感谢。

编辑

我如何用我的ImageView互动:

Button imageloader = (Button) findViewById(R.id.imageloader); 
ImageView iv = (ImageView) findViewById(R.id.iv); 
imageloader.setOnClickListener (new View.OnClickListener() {    
    public void onClick(View v) { 
    iv.setVisibility(View.VISIBLE); 
    } 
}); 
+0

查看onSaveInstanceState()和onRestoreInstanceState()。 – Sam 2012-07-29 19:02:58

+0

我做过,但到处都有人在讨论savedInstanceState.putDouble,savedInstanceState.putString等。但我只想保存布局的状态 – Simon 2012-07-29 19:09:06

+0

发布您如何加载图像,我会帮你。 – Sam 2012-07-29 19:09:41

回答

2

您可以保存和恢复您的ImageView iv像这样的可见性:

ImageView iv; 
... 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    iv.setVisibility(savedInstanceState.getInt("Image Visibility", View.GONE)); 
    super.onRestoreInstanceState(savedInstanceState); 
} 

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    outState.putInt("Image Visibility", iv.getVisibility()); 
    super.onSaveInstanceState(outState); 
} 

这样,你做不需要在清单中使用configChanges属性。你可以删除它。