我在 TabActivity 中有一个 tabHost,它包含 3 个选项卡,每个选项卡都有自己的类,我可以使用 Intent 在不同的选项卡之间导航,一旦我改变了手机的方向,或者当我将当前选项卡更改为另一个选项卡,我丢失了前一个选项卡中的所有数据(ImageView,我的 editTexts 上的文本)。
更新:
我尝试了 onSavedInstanceState 方法,但没有任何改变:
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.vendre);
imageView = (ImageView) findViewById(R.id.SelectedImage);
if(savedInstanceState!=null)
{
imageView.setImageBitmap((Bitmap) savedInstanceState.getParcelable("image"));
((EditText)findViewById(R.id.VendreName)).setText(savedInstanceState.getString("nomProduit"));
((EditText)findViewById(R.id.VendreDescription)).setText(savedInstanceState.getString("description"));
((EditText)findViewById(R.id.VendrePrix)).setText(savedInstanceState.getString("prix"));
}
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putString("nomProduit", ((TextView)findViewById(R.id.VendreName)).getText().toString());
outState.putString("description", ((TextView)findViewById(R.id.VendreDescription)).getText().toString());
outState.putString("prix", ((TextView)findViewById(R.id.VendrePrix)).getText().toString());
Bitmap b= ((BitmapDrawable)imageView.getDrawable()).getBitmap();
outState.putParcelable("image",b);
}
似乎从未调用过此方法。
最佳答案
在 AndroidManifest.xml 中为您的 Activity 添加 android:configChanges="orientation|screenSize"行。这不是一个好的解决方案。
关于android - 当我改变手机的方向或在选项卡之间导航时,我丢失了所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16509157/