在Android中处理旋转



我运行一个Web服务,获取我想要的数据,并在另一个活动中显示它们。到目前为止一切都很顺利。现在旋转!:)。这就是我正在做的。我使用onSaveInstanceState(...)方法将我想要的值保存在键/值对中。之后,我使用onRestoreInstanceState(...)方法来读取存储的值。这是我的密码。

public class Extras extends AppCompatActivity {
TextView textView;
TextView articleTextView;
String image;
String title;
String article;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_clubnews_extra);
    textView = (TextView)findViewById(R.id.textView2);
    articleTextView = (TextView)findViewById(R.id.articleTextView);
    imageView = (ImageView)findViewById(R.id.imageNews);
    Intent i = getIntent();
    title = i.getStringExtra("title");
    article = i.getStringExtra("article");
    image = i.getStringExtra("image");
    textView.setText(Html.fromHtml(title));
    articleTextView.setText(Html.fromHtml(article));
    Picasso.with(this).load(image).into(imageView);

}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
    super.onSaveInstanceState(outState, outPersistentState);
    outState.putString("title",title);
    outState.putString("article",article);
    outState.putString("image",image);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    savedInstanceState.getString("title");
    savedInstanceState.getString("article");
    savedInstanceState.getString("image");
 }
}

当我在onSaveInstanceState中放置断点时,当我旋转电话/模拟器时,我什么也看不到。这让我觉得这些值没有被存储。

请提供建议。

谢谢。

您覆盖了错误的方法。

使用

public void onSaveInstanceState(Bundle outState)

而不是

public void onSaveInstanceState(Bundle outState, 
                            PersistableBundle outPersistentState)

最新更新