Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展实现工具栏的基本活动时,工具栏不显示在活动中_Java_Android_Android Activity_Android Toolbar_Android Menu - Fatal编程技术网

Java 扩展实现工具栏的基本活动时,工具栏不显示在活动中

Java 扩展实现工具栏的基本活动时,工具栏不显示在活动中,java,android,android-activity,android-toolbar,android-menu,Java,Android,Android Activity,Android Toolbar,Android Menu,我是一名Android初学者,我一直在努力解决一个问题:在继承基本活动的任何活动中,我都看不到工具栏。根据其他资源,在不同的活动中使用相同的工具栏。我必须在基本活动中实现它,并在需要使用它的地方继承它。有人能帮我解决这个问题吗 styles.xml <resources> <style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> </style> <style name

我是一名Android初学者,我一直在努力解决一个问题:在继承基本活动的任何活动中,我都看不到工具栏。根据其他资源,在不同的活动中使用相同的工具栏。我必须在基本活动中实现它,并在需要使用它的地方继承它。有人能帮我解决这个问题吗

styles.xml

<resources>
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>

<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
WelcomeActivity(继承基本活动)

问卷调查

public class Questionnaire extends BaseActivity {
public Spinner languageSpinner;
public int languageId;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_questionnaire);
    ...
}
}

答案其实很简单。首先在BaseActivity类的
OnCreate()
方法中设置contentview,然后在子类的
OnCreate()
方法中将视图更改为另一个xml文件

我建议您不要在BaseActivity类中实现
OnCreate()
方法,而是在BaseActivity类中实现
SetContentView()
方法

简而言之,从BaseActivity()中删除
onCreate()
方法,并在下面的中添加
setContentView()
方法

@Override
public void setContentView(int layoutResID) {
    super.setContentView(layoutResID);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
}
注意-您的
quick_menu.xml
文件看起来不像菜单文件:
P.P.S-让我知道它是否有效,或者您是否有问题。:)

谢谢你的快速回复。我试过你所做的,但还没有成功。另外,感谢您指出quick.menu文件。我修改了它。@YudaiYaguchi您的布局文件(
activity\u investment
activity\u welcome
)是否包含工具栏?向
BaseActivity
添加一些
protected
方法,可以将内容视图和
工具栏设置为
SupportActionBar
,这可能是最不混乱的。。。因为扩展
BaseActivity
的类必须提供相应的布局和工具栏的
resId
s。。。不能假设工具栏的
resId
始终是
R.id.toolbar
(例如,在需要多个不同工具栏的应用程序中)。
public class WelcomeActivity extends BaseActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_welcome);

    final Button databaseButton = findViewById(R.id.database);
    databaseButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Code here executes on main thread after user presses button
            Intent databaseIntent = new Intent(WelcomeActivity.this, Questionnaire.class);
            startActivity(databaseIntent);
        }
    });
}
public class Questionnaire extends BaseActivity {
public Spinner languageSpinner;
public int languageId;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_questionnaire);
    ...
}
}
@Override
public void setContentView(int layoutResID) {
    super.setContentView(layoutResID);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
}