android开发里跳过的坑——button不响应点击事件

昨天遇到一个头疼的问题,在手机上按钮事件都很正常,但是在平板上(横屏显示的状态),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;
}
}

}

瞧见红色的部分了吗?因为横屏时重新加载了布局,却没有重新初始化各个控件,所以,相当于没有注册事件,那么点击也就无效了

原文地址:https://www.cnblogs.com/suxiaoqi/p/6882166.html