初始化每个RadioButton并为其添加setOnCheckedChangeListener事件,当点击相应的RadioButton时就可以通过setCurrentTabByTag()方法显示到当前页面。
Java代码 收藏代码
private void initRadios() {
((RadioButton) findViewById(R.id.main_index_button))
.setOnCheckedChangeListener(this);
((RadioButton) findViewById(R.id.main_running_button))
.setOnCheckedChangeListener(this);
((RadioButton) findViewById(R.id.main_uninstall_button))
.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
switch (buttonView.getId()) {
case R.id.main_index_button:
tabHost.setCurrentTabByTag("Main");
break;
case R.id.main_running_button:
tabHost.setCurrentTabByTag("RunManager");
break;
case R.id.main_uninstall_button:
tabHost.setCurrentTabByTag("UninstallManager");
break;
}
}
}
小结:
1、在一个tabActivity里面嵌套一个tabAcitivity, 如果在子tabActivity里面显示AlertDialog、ProgressDialog的话,就会引发此错误:android.view.WindowManager$BadTokenException: Unable to add window
解决方法:
可以把创建dialog时传递的参数xxx.this改成this.getParent(),其中的xxx为Activity