ToolBar后退箭头单击侦听器无法正常工作

时间:2017-08-10 10:01:29

标签: android

我在使用 Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. at android.support.v7.app.AppCompatDelegateImplV9.setSupportActionBar 时遇到问题我的应用程序因为在logcat中输入错误而崩溃

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
            Toast.makeText(context, "Backarrow pressed", Toast.LENGTH_SHORT).show();
            }
        }); 

当我删除代码setSupportActionbar(工具栏)时,这是非常易读的,我的应用程序中的代码下面的chucnk不起作用(这是用于导航回上一个活动的工具栏中的后退箭头。

my_view

5 个答案:

答案 0 :(得分:2)

尝试此操作来处理ToolBar后退箭头的点击事件

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    if (item.getItemId() == android.R.id.home) {
        Toast.makeText(context, "Backarrow pressed", Toast.LENGTH_SHORT).show();
        return true;
    }

    return false;
}

将此主题添加到您的活动中

 <style name="AppThemeNew" parent="Theme.AppCompat.Light.NoActionBar">

    <item name="colorPrimary">@color/colorWhite</item>
    <item name="colorPrimaryDark">@color/colorWhite</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>

答案 1 :(得分:0)

要使用ToolBar,您必须在"Theme.AppCompat.Light.NoActionBar"中设置主题style

您的style结构如下:

<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>
</resources>

答案 2 :(得分:0)

将我的代码用于其工作代码:

添加清单

  <activity
        android:name=".DemoActivity"
        android:theme="@style/AppTheme.NoActionBar" />

<强> Activity.class

  Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar_top);
        TextView mTitle = (TextView) toolbarTop.findViewById(R.id.toolbar_title);
        mTitle.setText("Open Docket");
        setSupportActionBar(toolbarTop);

        ActionBar ab = getSupportActionBar();
        ab.setDisplayHomeAsUpEnabled(true);
        ab.setDisplayShowTitleEnabled(false);
        ab.setHomeAsUpIndicator(R.mipmap.ic_back_appbar);

对于BackClick事件:(置于onCreate()之外)

  @Override
    public boolean onSupportNavigateUp(){
        finish();
        return true;
    }

答案 3 :(得分:0)

试试这个

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId() == android.R.id.home){
        Toast.makeText(context, "Backarrow pressed", Toast.LENGTH_SHORT).show();
        //finish();
    }
    return super.onOptionsItemSelected(item);
}

答案 4 :(得分:0)

<asp:Button ID="Edit" runat="server" Text="Edit" OnClick="Edit_OnClick" 
 OnClientClick="document.location.href+='#section2';return false;"></asp:Button>