【发布时间】:2013-07-15 18:41:42
【问题描述】:
我是 Android 开发新手,所以我有一个非常基本的问题。
基本上,我有两种屏幕布局,一种用于纵向,另一种用于横向。我使用文件夹 res/layout 和 res/layout-land。两个方向都画得很好,但是我为每个方向都有不同的小部件(按钮),btnPortrait 和 btnLandscape。
当我尝试调用 onSetClickListener() 时出现问题。因为当设备纵向放置时,框架无法定位 btnLandscape,反之亦然,我使用 onConfigurationChange() 手动处理方向更改。它似乎也不起作用。
我的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPortrait = (Button) findViewById(R.id.portraitButton);
tvPortrait = (TextView) findViewById(R.id.portraitText);
btnLandscape = (Button) findViewById(R.id.landscapeButton);
tvLandscape = (TextView) findViewById(R.id.landscapeText);
}
还有onConfigurationChange():
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
btnPortrait.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "Portrait",Toast.LENGTH_SHORT).show();
}
});
}
else {
btnLandscape.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "Landscape", Toast.LENGTH_SHORT).show();
}
});
}
}
Toasts 都不起作用。 有人知道会发生什么吗?
提前致谢。
【问题讨论】:
-
为什么每个按钮都有不同的按钮?只需给它们相同的 ID,Activity 就会相应地查找它们
-
它们不是针对同一个功能的,换句话说,它们是两个完全不同的按钮。我用 Toast 简化了代码以不进入业务模型,这与我的问题无关。
标签: android android-widget screen-orientation