无法在非主要活动中编辑工具栏,应用程序崩溃

时间:2018-04-03 09:46:16

标签: android android-layout android-studio

没有太多要解释的,当我尝试从另一个活动访问工具栏时,应用程序崩溃了。 这是我在主要活动的子活动中写的代码:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    String titleName = ("example");
    getSupportActionBar().setTitle(titleName);

这是我在清单中写的:

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

这是活动的XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutDirection="ltr">

<TextView
    android:id="@+id/titleId2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="2dip"
    android:paddingTop="6dip"
    android:textColor="@color/colorPrimaryDark"
    android:textSize="16sp"
    android:textStyle="bold" />




<TextView
    android:id="@+id/dateId2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="2dip"
    android:textColor="@color/colorAccent" />

<TextView
    android:id="@+id/authorId2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="2dip"
    android:textColor="@color/colorAccent"
    />

<TextView
    android:id="@+id/contentId2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#5d5d5d"
    android:textStyle="bold"
    android:scrollbars = "vertical"
    android:autoLink="web"/></LinearLayout>

你们有任何想法可能会出现什么问题吗? 并且看起来logcat没有获得任何错误,应用程序首先冻结一秒钟然后崩溃。 谢谢!

2 个答案:

答案 0 :(得分:2)

您无法访问其他活动的view

您需要在“活动布局”中添加 Toolbar

试试这个

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layoutDirection="ltr">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@+id/titleId2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="2dip"
        android:paddingTop="6dip"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="16sp"
        android:textStyle="bold" />




    <TextView
        android:id="@+id/dateId2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="2dip"
        android:textColor="@color/colorAccent" />

    <TextView
        android:id="@+id/authorId2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="2dip"
        android:textColor="@color/colorAccent"
        />

    <TextView
        android:id="@+id/contentId2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#5d5d5d"
        android:textStyle="bold"
        android:scrollbars = "vertical"
        android:autoLink="web"/></LinearLayout>

答案 1 :(得分:0)

在XML中使用如下: -

      <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

并在java中: -

ToolBar toolbar = (Toolbar) findViewById(R.id.toolbar);            
toolbar.setTitle("My title");
setSupportActionBar(toolbar);
在style.xml中

: -

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