我有以下场景:android up,兼容从Android 1.6及以上开始。在ALL活动的底部,我有一组只能启动活动的ToggleButtons。不要问我为什么,这就是请求:)让这些按钮在所有屏幕上做同样的事情,我想这样:
当覆盖onCreate()时,我被困在我的BaseActivity上。如何获取按钮并将onClick侦听器分配给它们?
public class BaseActivity extends Activity {
private ToggleButton menuHome;
@Override
public void onCreate(Bundle savedInstanceState) {
//this does not work as it cannot find R.id.menu_home)
menuHome = (ToggleButton) findViewById(R.id.menu_home);
}
}
答案 0 :(得分:1)
在扩展BaseActivity的其他活动中,请查看您的OnCreate方法。它看起来像这样吗?
public class YourActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
base.Oncreate(saveInstanceState);
setContentView(R.layout.YourLayout);
// Other code here...
}
}
它与订单有关...您尚未设置内容视图,因此您的切换按钮不存在。试试这个:
public class YourActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.YourLayout); // Set your content view first.
base.Oncreate(saveInstanceState);
// Other code here...
}
}
答案 1 :(得分:1)
您需要使用有效的xml文件或运行时对象初始化初始化GUI。尝试在您的活动中使用setContentView。您的代码未加载任何xml,因此没有初始化menu_home。
http://developer.android.com/reference/android/app/Activity.html
我不确定这是否是正确的方法,我会考虑做一个外部组件来完成这项工作: http://developer.android.com/guide/topics/ui/custom-components.html
答案 2 :(得分:0)
你必须调用setContentView(R.layout.your_layout),其中your_layout是包含按钮R.id.menu_home的布局。现在你没有为活动提供布局,因此没有层次结构来搜索按钮。