使用noActionBar创建后退按钮

时间:2018-03-13 05:13:25

标签: java android back-button

我花了几天的时间学习Android开发,我承认我的代码并不漂亮,因为我已经有几周的Java了。我正在尝试在第二个主要活动页面上创建一个后退按钮以返回第一个主要活动,但我遇到的唯一解决方案是使用工具栏时。在使用noActionBar时如何添加此功能?

主要活动xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/clearwater"
android:scaleType="centerCrop"
tools:context="com.example.goodvibes.helloworld.MainActivity">



<Button
    android:id="@+id/button"
    style="@style/Widget.AppCompat.Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="146dp"
    android:background="@drawable/btn"
    android:fontFamily="cursive"
    android:text="DIVE"
    android:textSize="24sp"
    android:textStyle="bold" />




</RelativeLayout>

主要活动2 xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:context="com.example.goodvibes.helloworld.MainActivity">

<Button
    android:id="@+id/Button2"
    style="@style/Widget.AppCompat.Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="76dp"
    android:background="@drawable/timebutton"
    android:fontFamily="serif-monospace"
    android:text="Time Interval Between Dives"
    android:textSize="20sp"
    android:textStyle="bold" />

<ImageButton
    android:id="@+id/imageButton"
    style="@android:style/Widget.ImageButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="17dp"
    android:layout_marginStart="17dp"
    android:layout_marginTop="11dp"
    android:adjustViewBounds="false"
    android:background="@android:color/background_light"
    android:cropToPadding="false"
    android:tint="@android:color/background_dark"
    app:srcCompat="?android:attr/actionModeCloseDrawable" />


</RelativeLayout>

主要活动Java

package com.example.goodvibes.helloworld;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

public Button but1;

    public void init(){
        but1= (Button)findViewById(R.id.button);
        but1.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view) {

                Intent toy = new 
 Intent(MainActivity.this,activity_main_2.class);

                startActivity(toy);

            }
        });
}


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    init();{
}
}

}

主要活动2 Java

package com.example.goodvibes.helloworld;

import android.content.Intent;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ViewAnimator;

public class activity_main_2 extends AppCompatActivity {




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_2);




}
}

清单

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

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" 
/>
        </intent-filter>
    </activity>
    <activity android:name=".activity_main_2"></activity>
</application>

</manifest>

我有很多伟大的人给我答案我必须研究。最后这里解决了我的问题:我插入了“android:onClick =”ImageButton“在我的按钮代码下的xml精细THEN下相应的java文件下我插入的第二个活动:

public void ImageButton(View v)
{
    // some code
    finish();
}

2 个答案:

答案 0 :(得分:0)

将其添加到您的布局文件中:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar_acashmemoreport"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    app:theme="@style/ToolbarColoredBackArrow" />

在您的活动中:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_acashmemoreport);
setSupportActionBar(toolbar);


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    Window window = getWindow();
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(getResources().getColor(R.color.colorPrimaryDark));
}

// Show menu icon
final ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(true);
toolbar.setTitleTextColor(getResources().getColor(R.color.colorWhite));

答案 1 :(得分:-2)

首先,您必须添加一个必需的工具栏,在创建工具栏后,您将按钮放在工具栏中,如下所示;

将您的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" >


        <ImageButton
            android:id="@+id/btn_back_toolbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/back"
            />

    </android.support.v7.widget.Toolbar>

还在Activity Class中包含以下java代码,

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ImageButton back=findViewById(R.id.btn_back_toolbar);

    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(this,AnotherActivity.class));
        }
    });