我有一个抽象的Activity
,因为我的大多数活动都共享相同的菜单:
public abstract class ActivityBase extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menubar, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
//...
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//...
}
}
现在,当我使用那个类(继承它)时,
findViewById()
方法不再起作用。无论我是否在特定类中继承它,一旦它出现在继承树中的任何位置,它都不再起作用。例如:public class SomeOther extends ActivityBase {
}
public class Home extends Activity {
@Override
public void onCreate (Bundle savedInstance) {
super.onCreate(savedInstance);
setContentView(R.layout.main);
Button b = (Button)findViewById(R.id.button); // fails, NullPointerException
}
什么可能导致这种情况,更重要的是,我该如何解决?