簡體   English   中英

Android屏幕旋轉

[英]Android Screen Rotation

我在Android Studio中遇到這個特殊問題。 我做了這個簡單的應用程序,以了解屏幕旋轉。 我理解屏幕旋轉時Activity的概念被破壞,並回想onCreate方法。 為了保存數據,您必須通過重寫onSaveInstanceState方法將其放入捆綁包中。 我制作了一個帶有2個按鈕和一個中間數字的應用程序。 該數字將根據單擊的按鈕而變化。 但是由於某種原因,當我旋轉屏幕時,會重置數字,但仍然保持屏幕旋轉之前的值。 例如,如果我將數字設置為5,然后旋轉屏幕,數字將變為零,但是如果增加它,如果將其減小到4,數字將變為6。以某種方式,它仍然保持其值但重置為零,我不知道為什么 這是代碼

package com.example.android.application;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    Button upButton, downButton;
    TextView amount;
    int change;
    private static final String banza = "Bundle";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState != null) {
            change = savedInstanceState.getInt(banza);
        }
        upButton = (Button) findViewById(R.id.activity_main_up_button);
        downButton = (Button) findViewById(R.id.activity_main_down_button);
        amount = (TextView) findViewById(R.id.activity_main_textview_id);
        upButton.setOnClickListener(this);
        downButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        if (view == upButton) {
            change++;
            amount.setText(Integer.toString(change));
        }

        if (view == downButton) {
            change--;
            amount.setText(Integer.toString(change));
        }
    }

    @Override
    protected void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);
        savedInstanceState.putInt(banza, change);
    }
}

您錯過了

amount.setText(Integer.toString(change)); 

onCreate中 ,這就是為什么它在旋轉時不顯示值,但在遞增或遞減時具有正確值的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM