当前位置: 首页 > 知识库问答 >
问题:

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

卫英悟
2023-03-14

我有一个网页内的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)

共有1个答案

周云
2023-03-14

我认为您需要做的是将textview文本设置为您想要的文本放入getSupportActionBar().settitle()函数。如果不使用它,为什么要设置为空?看看这个和settitle的文档。

 类似资料:
  • 我使用工具栏设置标题文本,但是对于不同的屏幕,我使用样式定义了不同的标题文本大小。但问题是当我在手机上运行时,哪个屏幕是标题文本大小是可以的,但对于屏幕,标题看起来太小了,这是我的风格 这是toolbar.xml 我已经在所有文件夹中声明了这个样式,如、、。所以请帮助我如何设置标题的文本大小,使它在手机和平板电脑上看起来都很好

  • 我想这样做,但与折叠工具栏布局或滚动后在工具栏中显示徽标和标题。 请帮助我

  • 我一直在使用AppCompatv7 lib的最新工具栏。我在工具栏视图组中放置了一个文本视图,我想从我的活动片段中为这个文本视图设置一个标题。如果是自定义操作栏((ActionBarActivity)getActivity)。setcustomView(…)会完成任务的。但由于使用了这个工具栏,我无法使用它。此外,我在BaseActivity中实现了一个由所有活动继承的方法。此BaseActivi

  • 当你将鼠标悬停在网页的某个区域时,有很多基于JavaScript的库会显示工具提示。有些相当简单,有些允许工具提示显示用CSS样式设计的超文本标记语言内容。 但是有没有一种方法可以在不使用JavaScript的情况下显示样式化的工具提示?如果您只是使用属性,标记不会被处理(例如

  • 我正在处理一个grails项目,该项目使用jasper插件下载pdf和doc格式的文档。 我有几个jasper子报告,并使用动态jasper中的这些子报告下载pdf和docx格式的文档。我正在使用动态jasper报表,因为jasper子报表的位置可能会有所不同。 我的jasper子报告有一个标题和一个细节带。 我还尝试通过动态jasper代码使用框架和矩形设置边框,结果是: 框架和矩形不覆盖整个子