我是一個非常新的Android開發人員,所以我有一個非常基本的問題。針對不同屏幕方向的不同窗口小部件(視圖)?
基本上,我有兩個屏幕布局,一個用於縱向,另一個用於橫向。我使用res/layout和res/layout-land文件夾。兩個方向都很好,但我爲每個方向有不同的控件(按鈕),btnPortrait和btnLandscape。
當我嘗試調用SetClickListener()時出現問題。因爲當設備以縱向定向時,框架無法定位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();
}
});
}
}
祝酒詞工作無。 有人知道會發生什麼嗎?
在此先感謝。
爲什麼你必須爲每個不同的按鈕?只要給他們同樣的ID和活動將看看他們相應 –
他們並不旨在相同的功能,換句話說,它們是兩個完全不同的按鈕。我使用Toast簡化了代碼,不會輸入與我的問題無關的商業模式。 – AirieFenix