昨天遇到一個頭疼的問題,在手機上按鈕事件都很正常,但是在平板上(橫屏顯示的狀態),button點擊事件不響應,代碼簡化如下:
public class Test extends Activity implements OnClickListener{
private Button testButton = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testButton = (Button) this.findViewById(R.id.button_test);
testButton.setOnClickListener(this);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
setContentView(R.layout.activity_main);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button_test:
Toast.makeText(this, "button click", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
瞧見紅色的部分了嗎?因為橫屏時重新加載了布局,卻沒有重新初始化各個控件,所以,相當於沒有注冊事件,那么點擊也就無效了