私はAndroid向けの開発を始めたばかりなので、非常に基本的な質問があります。
基本的に、縦向きと横向きの 2 つの画面レイアウトがあります。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();
}
});
}
}
トーストはどれも機能しません。誰かが何が起こっているのか知っていますか?
前もって感謝します。