java - 无法设置带有文本标题的工具栏?

标签 java android

我在 Android studio 中有一个页面,我正在尝试在里面进行网站展示。 但问题是,我尝试从顶部将自定义地址放入地址栏中,但代码中出现错误,并附有注释“我认为相同的代码可以在其他类中工作,并且其他类中的一切都正确”。 但在这段代码中,有一个错误。

public class teamsnews extends AppCompatActivity {

    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_teamsnews);
        WebView htmlWebView = (WebView)findViewById(R.id.webView);
        //  htmlWebView.setWebViewClient(new CustomWebViewClient());
        WebSettings webSetting = htmlWebView.getSettings();
        webSetting.setJavaScriptEnabled(true);
        webSetting.setDisplayZoomControls(true);
        htmlWebView.loadUrl("https://www.yallakora.com/Match-Center/%D9%85%D8%B1%D9%83%D8%B2-%D8%A7%D9%84%D9%85%D8%A8%D8%A7%D8%B1%D9%8A%D8%A7%D8%AA#nav-burgermenu");
        SetupToolBar();
    }

    private void SetupToolBar() {
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("");
        TextView textView = findViewById(R.id.toolbar_title);
        textView.setText("الدورى والبطولات");
    }

}


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

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:name=".utility.FirebaseOffline"
        android:allowBackup="true"
        android:icon="@drawable/logoy"
        android:label="@string/app_name"
        android:supportsRtl="false"
        android:theme="@style/AppTheme"
        tools:replace="android:supportsRtl">

        <activity android:name=".teamsnews"
            android:parentActivityName=".DetailsActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />

        <activity
            android:name=".Act_tutoriial"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar"/>

        <activity
            android:name=".DawraElramadnia"
            android:launchMode="singleTop"
            android:parentActivityName=".DetailsActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar"/>


        <activity
            android:name=".SplashScreen"
            android:launchMode="singleTop"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" /> <!-- > for notification handler<! -->
        <meta-data
            android:name="com.onesignal.NotificationOpened.DEFAULT"
            android:value="DISABLE" />

        <activity android:name="com.soundcloud.android.crop.CropImageActivity" />
        <activity
            android:name=".utility.TutorialActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />

        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />

        <activity
            android:name=".DetailsActivity"
            android:launchMode="singleTop"
            android:parentActivityName=".MainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />

        <activity
            android:name=".CommentActivity"
            android:parentActivityName=".DetailsActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".ReservationActivity"
            android:parentActivityName=".DetailsActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".utility.AddStudiam"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".CombineTeam"
            android:parentActivityName=".DetailsActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".GiftsAcivity"
            android:launchMode="singleTop"
            android:parentActivityName=".DetailsActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />
    </application>

</manifest>

/// style 
<resources>
    <!-- Base application theme. -->
    <style name="AppTheme"
        parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="android:windowNoTitle">true</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>





    <style name="NoActionBarTheme"
        parent="Theme.AppCompat.Light.NoActionBar"


        />

    <style name="myRatingBar"
        parent="@style/Base.Widget.AppCompat.RatingBar.Small">
    </style>

    <style name="CustomRatingBar"
        parent="@android:style/Widget.Holo.RatingBar.Indicator">
        <item name="android:progressDrawable">@drawable/ratingbar</item>
        <item name="android:maxHeight">32dp</item>
    </style>
    <style name="CustomRatingBar2"
        parent="@android:style/Widget.Holo.RatingBar.Indicator">
        <item name="android:progressDrawable">@drawable/ratingbar_yellow</item>
        <item name="android:maxHeight">32dp</item>
    </style>
    <!-->
    !-->
    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
    </style>

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

    <style name="CustomRatingBarsmall"
        parent="@android:style/Widget.Holo.RatingBar.Small">
        <item name="android:progressDrawable">@drawable/ratingbarsmall</item>
    </style>


    <style name="ToolbarTheme" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
        <!-- android:textColorPrimary is the color of the title text in the Toolbar  -->
        <item name="android:textColorPrimary">@android:color/holo_blue_light</item>
        <!-- actionMenuTextColor is the color of the text of action (menu) items  -->
        <item name="actionMenuTextColor">@android:color/holo_green_light</item>
        <!-- Tints the input fields like checkboxes and text fields -->


        <!-- Enable these below if you want clicking icons to trigger a ripple effect -->
        <!--
        <item name="selectableItemBackground">?android:selectableItemBackground</item>
        <item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item>
        -->
    </style>

    <!-- This configures the styles for the title within the Toolbar  -->
    <style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">21sp</item>
    <item name="android:textStyle">italic</item>
    </style>
</resources>


// -------- Logecat error: 

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.otherHand.mal3abak/com.otherHand.teamsnews}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2695)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2769)
        at android.app.ActivityThread.access$900(ActivityThread.java:177)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1430)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5910)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
        at com.otherHand.teamsnews.SetupToolBar(teamsnews.java:33)
        at com.otherHand.teamsnews.onCreate(teamsnews.java:27)
        at android.app.Activity.performCreate(Activity.java:6178)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)

最佳答案

我认为您需要做的是将您设置的 TextView 文本用作 getSupportActionBar().setTitle() 函数中所需的文本。如果不使用为什么要设置为空? Look at thisThe docs for setTitle .

关于java - 无法设置带有文本标题的工具栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55943680/

相关文章:

java - 想要从第一个到最后一个元素。但最后回到第一

java - Apache Drill 检查目录中文件的结构

c# - 来自 REST 的 Xamarin 图像

android - 如何从手机存储中获取所有图像到我的应用程序中?

Android Studio 3.0.1 错误 : Gradle project sync failed. 基本功能(例如编辑、调试)将无法正常工作

android - Android 是否可以在按下开始按钮时发送短信、电子邮件和调用电话?

java - 如何应用依赖 hibernate 验证?

java - 我应该使用报告框架吗?

java - 无法在 Ubuntu 中使用 Java 压缩空文件夹

android - 以编程方式创建的带有 LayerDrawable 的 StateListDrawable 不适用于 Android 4.0+