2

当我将屏幕从纵向模式更改为横向模式时,然后自动从我的应用程序中出来。(与横向到纵向相同)任何人都可以告诉我解决方案。

这是我的定位代码,

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
            Toast.makeText(MyAlphabetsActivity.this, "ORIENTATION_PORTRAIT",
                    Toast.LENGTH_SHORT).show();
            setContentView(R.layout.portrait_main);
            System.out.println("int-----1--");
        } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            setContentView(R.layout.landscape_main);
            Toast.makeText(MyAlphabetsActivity.this, "ORIENTATION_LANDSCAPE",
                    Toast.LENGTH_SHORT).show();
            System.out.println("int-----2--");
        }

当将纵向更改为横向控件时输入 else if() 并显示 Toast Massage 也.......

4

4 回答 4

1

您错误地处理了方向更改。您应该阅读处理运行时更改指南。考虑一点。

于 2011-12-14T08:11:39.560 回答
1

如果您portrait在模式中和landscape模式中具有相同的布局,那么最好通过添加来停止在旋转更改时重新创建 Activity

android:configChanges="orientation|keyboardHidden"

清单文件中的活动标签中的属性。

于 2011-12-14T08:16:36.140 回答
0

您有两个选择:要么以单一模式阻止应用程序:纵向或横向。第二个选项是创建两个布局:layout-land 和 layout-portrait 有两个不同的布局是不正确的。它只是行不通。您必须在 res 文件夹中的文件夹。一个文件夹 layout-land ,其中您有 main.xml 和一个文件夹 layout-portrait ,其中您有一个名为 main.xml 的文件,用于处理纵向模式。

于 2011-12-14T08:35:55.587 回答
0
int o = getBaseContext().getResources().getConfiguration().orientation;
    if(o==1)//Portrait
    {
             Log.i("Portrait","=====");

    }
    else if(o==2)//Landscape
    {
             Log.i("Landscape","=====");
    }               
于 2011-12-14T08:56:08.060 回答