java - @layout/toolbar 标记中未显示后退箭头

标签 java android android-studio icons toolbar

我有一个问题。我想创建一个后退箭头,但它没有显示。标题也不显示。我使用额外的 .xml 文件创建了工具栏。所以我希望你们能帮助我,伙计们!提前致谢。

这些是我的文件: Files 这是我的标准屏幕: Standard screen 这是我的设置屏幕: setting screen

SettingsActivity.java

    public class SettingsActivity extends AppCompatActivity {

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

            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setTitle("My title");
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item)
        {
            int id = item.getItemId();
            if (id == android.R.id.home)
            {
                onBackPressed();
                return true;
            }
            else
            {
                return super.onOptionsItemSelected(item);
            }
        }

    }

activity_settings.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SettingsActivity">

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello Settings!"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/menu_info"
        android:icon="@drawable/ic_info_white_24dp"
        android:title="Info"
        app:showAsAction="ifRoom"/>
    <item android:id="@+id/menu_settings"
        android:icon="@drawable/ic_settings_white_24dp"
        android:title="Settings"
        app:showAsAction="ifRoom"/>
</menu>

style.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
    <style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_settings_white_24dp</item>
        <item name="android:contentDescription">"Lala"</item>
    </style>

</resources>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".SettingsActivity"
            android:parentActivityName=".MainActivity"></activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/colorPrimary"
    android:elevation="4dp"
    app:titleTextColor="#fff">


</androidx.appcompat.widget.Toolbar>

MainActivity.java

public class MainActivity extends AppCompatActivity {

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

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch(item.getItemId()) {
            case R.id.menu_info:
                Toast.makeText(this, "Info", Toast.LENGTH_LONG).show();
                return true;
            case R.id.menu_settings:
                setContentView(R.layout.activity_settings);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

最佳答案

您好,请在代码中更改以下内容

将此行添加到设置类 setSupportActionBar(toolbar);

关于java - @layout/toolbar 标记中未显示后退箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61843091/

相关文章:

java - 在 android TextView 中检测新行

java - 从 Spring MVC XML 文件移动到 javaconfig。我真的迷失了我的数据库 XML 文件

Android Studio 模拟器无法启动 "Waiting for target device to come online"

android - 如何在 Android Studio : “This was auto-generated to implement the App Indexing API.” ? 中关闭新生成代码的自动更新

java - Railo 和 Tomcat 卡住,PID 未删除

java - Spring websockets : sending a message to an offline user - messages not enqueued in message broker

android - 从 Android 应用向 Google Assistant 发送命令

android - 如何从 GenyMotion 中删除 Google Play 服务?

java - 在使用 Kotlin 的 Android Studio 3.6.1 中,System.out.println(CustomArrayList) 不会在调试时打印值

android - 在 android 中跟踪已安装 apk 的日志