【问题标题】:cannot setup tool bar with text title?无法设置带有文本标题的工具栏?
【发布时间】:2019-05-02 07:41:43
【问题描述】:

我在 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)

【问题讨论】:

    标签: java android


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      getsupportactionbar在没有action bar时返回null;使用 ActionBar 将 Activity 的主题设置为。

      <activity android:name=".Your_activity_name"
              android:parentActivityName=".DetailsActivity"
              android:screenOrientation="portrait"
              android:theme="@style/some_theme_with_an_action_bar" />
      

      【讨论】:

      • 你设置的主题是什么?它有操作栏吗?
      • 拜托,看看我的代码就上来了,你会的
      猜你喜欢
      • 1970-01-01
      • 2020-11-15
      • 2015-09-30
      • 2016-07-15
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      相关资源
      最近更新 更多