当我将方向从纵向更改为横向时,我的计算结果消失了。怎么解决呢?

发布于 2024-10-31 23:18:16 字数 55 浏览 0 评论 0原文

海,在我的计算器应用程序中,当我单击计算按钮时,结果正常显示,但是当我更改方向时,计算结果消失。

Hai, in my calculator app when i click on calculate button result is appearing normally, but when i change the orientation calculated result is disappearing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

最美不过初阳 2024-11-07 23:18:16

尝试这段代码

@Override  
public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig);  
}

并在manifest.xml中

<application android:icon="@drawable/icon" android:label="@string/app_name">´
    <activity android:name="XXXXX"
              android:label="@string/app_name"
              android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> //this <--
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    ...
</application>

编辑:
我添加了 screenSize 标志。在 android >3 中,如果不添加此标志,则不会调用 onConfigurationChanged 方法。

Try this code

@Override  
public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig);  
}

and in the manifest.xml

<application android:icon="@drawable/icon" android:label="@string/app_name">´
    <activity android:name="XXXXX"
              android:label="@string/app_name"
              android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> //this <--
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    ...
</application>

EDIT:
I added the screenSize flag. In android >3 if you dont add this flag the method onConfigurationChanged will not be called.

記柔刀 2024-11-07 23:18:16

请参阅此示例,了解如何使用 Bundle。首先,您必须覆盖 onSaveInstanceState 方法。

public void onSaveInstanceState(Bundle savedInstanceState) {
    TextView  txtName = (TextView)findViewById(R.id.raj44);
    String  aString = txtName.getText().toString();
    savedInstanceState.putString("Name", aString);
    super.onSaveInstanceState(savedInstanceState);
} 

onCreate 方法中,您然后可以从保存的 Bundle 恢复实例的状态。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.concretetool);
    if (savedInstanceState != null) {
        String  aString = savedInstanceState.getString("Name");
        if (aString != null) {
            txtName = (TextView)findViewById(R.id.raj44);
            txtName.setText(aString);
        }
    }
}

Please see this example on how to save the state of your Activity using a Bundle. First you have to override the onSaveInstanceState method.

public void onSaveInstanceState(Bundle savedInstanceState) {
    TextView  txtName = (TextView)findViewById(R.id.raj44);
    String  aString = txtName.getText().toString();
    savedInstanceState.putString("Name", aString);
    super.onSaveInstanceState(savedInstanceState);
} 

In the onCreate method you can then restore the state of your instance from the saved Bundle.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.concretetool);
    if (savedInstanceState != null) {
        String  aString = savedInstanceState.getString("Name");
        if (aString != null) {
            txtName = (TextView)findViewById(R.id.raj44);
            txtName.setText(aString);
        }
    }
}
泅人 2024-11-07 23:18:16

方向更改后,活动将重新启动。你必须将当前值保存在bundle中

(我假设你的意思是一个android应用程序)

the activity is restarted after the orientation changed. you have to save the current values in bundle

(I assume you mean an android app)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文