Как я могу использовать стрелку «назад» на панели действий моего табуляции? - PullRequest
0 голосов
/ 21 июня 2019

Я хочу создать стрелку назад в моем ActionBar в Main3activity.
В моем ящике я использую фрагменты, но не могу исправить это, чтобы создать фрагмент
с TabLayout, поэтому я решил использовать деятельность, и это работает для меня. Но
когда я на Main3activity и я хочу вернуться к MainActivity I
хочу использовать стрелку в моем ActionBar чего-то еще. Может кто-то
помогите мне пожалуйста?
Сначала я хочу попробовать это с фрагментами, но это не сработало для меня на
TabLayout при fragment. Поэтому я выбираю деятельность.

AndroidManifest.xml

     <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
          package="com.example.drauwertab20190621">  
      <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=".Main3Activity"  
                android:label="@string/title_activity_main3"  
                android:theme="@style/AppTheme.NoActionBar">  
        </activity>  
        <activity  
                android:name=".MainActivity"  
                android:label="@string/app_name"  
                android:theme="@style/AppTheme.NoActionBar">  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN"/>  
                <category android:name="android.intent.category.LAUNCHER"/>  
            </intent-filter>  
        </activity>  
    </application>  
   </manifest>  

MainActivity.kt

    package com.example.drauwertab20190621    

    import android.content.Intent  
    import android.os.Bundle  
    import android.support.design.widget.FloatingActionButton  
    import android.support.design.widget.NavigationView  
    import android.support.design.widget.Snackbar  
    import android.support.v4.view.GravityCompat  
    import android.support.v4.widget.DrawerLayout  
    import android.support.v7.app.ActionBarDrawerToggle  
    import android.support.v7.app.AppCompatActivity  
    import android.support.v7.widget.Toolbar  
    import android.view.Menu  
    import android.view.MenuItem   

    class MainActivity : AppCompatActivity(),  
    NavigationView.OnNavigationItemSelectedListener {   

    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(R.layout.activity_main)  
        val toolbar: Toolbar = findViewById(R.id.toolbar)  
        setSupportActionBar(toolbar)  
        val fab: FloatingActionButton = findViewById(R.id.fab)  
        fab.setOnClickListener { view ->  
            Snackbar.make(view, "Replace with your own action",  
        Snackbar.LENGTH_LONG).setAction("Action", null).show()  
        }  
        val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)  
        val navView: NavigationView = findViewById(R.id.nav_view)  
        val toggle = ActionBarDrawerToggle(  
            this, drawerLayout, toolbar, R.string.navigation_drawer_open,  
        R.string.navigation_drawer_close  
        )  
        drawerLayout.addDrawerListener(toggle)  
        toggle.syncState()  
        navView.setNavigationItemSelectedListener(this)  
      }  

    override fun onBackPressed() {  
        val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)  
        if (drawerLayout.isDrawerOpen(GravityCompat.START)) {  
            drawerLayout.closeDrawer(GravityCompat.START)  
        } else {  
            super.onBackPressed()  
        }  
    }  

    override fun onCreateOptionsMenu(menu: Menu): Boolean {  
        // Inflate the menu; this adds items to the action bar if it is  
    present.  
        menuInflater.inflate(R.menu.main, menu)  
        return true  
    }  

    override fun onOptionsItemSelected(item: MenuItem): Boolean {  
        // Handle action bar item clicks here. The action bar will  
        // automatically handle clicks on the Home/Up button, so long  
        // as you specify a parent activity in AndroidManifest.xml.  
        return when (item.itemId) {  
            R.id.action_settings -> true  
            else -> super.onOptionsItemSelected(item)  
        }  
     }  

    override fun onNavigationItemSelected(item: MenuItem): Boolean {  
        // Handle navigation view item clicks here.  
        when (item.itemId) {  
            R.id.nav_home -> {  
                // Handle the camera action  
            }  
            R.id.nav_gallery -> {  
            }  
            R.id.nav_slideshow -> {  
                val i = Intent(this@MainActivity, Main3Activity::class.java)
                startActivity(i)  
            }  
            R.id.nav_tools -> {  
            }  
            R.id.nav_share -> {  
            }  
            R.id.nav_send -> {  
            }  
        }  
        val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)  
        drawerLayout.closeDrawer(GravityCompat.START)  
        return true  
     }  
    }  

Main3Activity.kt

    package com.example.drauwertab20190621 

    import android.os.Bundle  
    import android.support.design.widget.FloatingActionButton  
    import android.support.design.widget.Snackbar  
    import android.support.design.widget.TabLayout  
    import android.support.v4.view.ViewPager  
    import android.support.v7.app.AppCompatActivity  
    import com.example.drauwertab20190621.ui.main.SectionsPagerAdapter  

    class Main3Activity : AppCompatActivity() {   

     override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(R.layout.activity_main3)   

        val sectionsPagerAdapter = SectionsPagerAdapter(this,  
        supportFragmentManager)  

        val viewPager: ViewPager = findViewById(R.id.view_pager)  
        viewPager.adapter = sectionsPagerAdapter  

        val tabs: TabLayout = findViewById(R.id.tabs)  
        tabs.setupWithViewPager(viewPager)  
        val fab: FloatingActionButton = findViewById(R.id.fab)  

        fab.setOnClickListener { view ->  
            Snackbar.make(view, "Replace with your own action",  
        Snackbar.LENGTH_LONG).setAction("Action", null).show()  
        }  

       }  
     }  

activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>  

    <android.support.v4.widget.DrawerLayout  
        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:id="@+id/drawer_layout"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:fitsSystemWindows="true"  
        tools:openDrawer="start">  

    <include  
            layout="@layout/app_bar_main"  
            android:layout_width="match_parent"  
            android:layout_height="match_parent"/>  

    <android.support.design.widget.NavigationView  
            android:id="@+id/nav_view"  
            android:layout_width="wrap_content"  
            android:layout_height="match_parent"  
            android:layout_gravity="start"  
            android:fitsSystemWindows="true"  
            app:headerLayout="@layout/nav_header_main"  
            app:menu="@menu/activity_main_drawer"/>  

     </android.support.v4.widget.DrawerLayout>   

activity_main3.xml

    <?xml version="1.0" encoding="utf-8"?>    

    <android.support.design.widget.CoordinatorLayout  
        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"  
        tools:context=".Main3Activity">  

    <android.support.design.widget.AppBarLayout  
        android:layout_height="wrap_content"  
        android:layout_width="match_parent"  
        android:theme="@style/AppTheme.AppBarOverlay">   

        <TextView  
                android:id="@+id/title"  
                android:layout_width="wrap_content"  
                android:layout_height="wrap_content"  
                android:gravity="center"  
                android:minHeight="?actionBarSize"  
                android:padding="@dimen/appbar_padding"  
                android:text="@string/app_name"  
                android:textAppearance="@style/TextAppearance.Widget                            
        .AppCompat.Toolbar.Title"/>  

        <android.support.design.widget.TabLayout  
                android:id="@+id/tabs"  
                android:layout_width="match_parent"  
                android:layout_height="wrap_content"  
                android:background="?attr/colorPrimary"/>  

       </android.support.design.widget.AppBarLayout>   

       <android.support.v4.view.ViewPager  
            android:id="@+id/view_pager"  
            android:layout_width="match_parent"  
            android:layout_height="match_parent"  
            app:layout_behavior="@string/appbar_scrolling_view_behavior"/>   

       <android.support.design.widget.FloatingActionButton  
            android:id="@+id/fab"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_gravity="bottom|end"  
            android:layout_margin="@dimen/fab_margin"  
            app:srcCompat="@android:drawable/ic_dialog_email"/>   

   </android.support.design.widget.CoordinatorLayout>  

app_bar_main.xml

   <?xml version="1.0" encoding="utf-8"?>   

   <android.support.design.widget.CoordinatorLayout  
        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"  
        tools:context=".MainActivity">  

    <android.support.design.widget.AppBarLayout  
        android:layout_height="wrap_content"  
        android:layout_width="match_parent"  
        android:theme="@style/AppTheme.AppBarOverlay">   

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

    </android.support.design.widget.AppBarLayout>  

    <include layout="@layout/content_main"/>  

    <android.support.design.widget.FloatingActionButton  
            android:id="@+id/fab"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_gravity="bottom|end"  
            android:layout_margin="@dimen/fab_margin"  
            app:srcCompat="@android:drawable/ic_dialog_email"/>   

content.xml

    <?xml version="1.0" encoding="utf-8"?>  
    <android.support.constraint.ConstraintLayout  
        xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools"  
        xmlns:app="http://schemas.android.com/apk/res-auto"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        app:layout_behavior="@string/appbar_scrolling_view_behavior"  
        tools:showIn="@layout/app_bar_main"  
        tools:context=".MainActivity">  

     <TextView  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:text="Hello World!"  
            app:layout_constraintBottom_toBottomOf="parent"  
            app:layout_constraintLeft_toLeftOf="parent"  
            app:layout_constraintRight_toRightOf="parent"  
            app:layout_constraintTop_toTopOf="parent"/>  

    </android.support.constraint.ConstraintLayout>   

frag_main3.xml

    <?xml version="1.0" encoding="utf-8"?>  
    <android.support.constraint.ConstraintLayout   
    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:id="@+id/constraintLayout"                                       
    android:layout_width="match_parent"                                             
    android:layout_height="match_parent"   

    tools:context=".ui.main.PlaceholderFragment">    

    <TextView  
            android:id="@+id/section_label"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            tools:layout_constraintTop_creator="1"  
            android:layout_marginStart="@dimen/activity_horizontal_margin"  
            android:layout_marginEnd="@dimen/activity_horizontal_margin"  
            android:layout_marginTop="@dimen/activity_vertical_margin"  
            android:layout_marginBottom="@dimen/activity_vertical_margin"  
            tools:layout_constraintLeft_creator="1"  
            app:layout_constraintLeft_toLeftOf="parent"  
            app:layout_constraintTop_toTopOf="@+id/constraintLayout"/>  
    </android.support.constraint.ConstraintLayout>    

nav_header_main.xml

    <?xml version="1.0" encoding="utf-8"?>    

    <LinearLayout  
        xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:app="http://schemas.android.com/apk/res-auto"  
        android:layout_width="match_parent"  
        android:layout_height="@dimen/nav_header_height"  
        android:background="@drawable/side_nav_bar"  
        android:paddingBottom="@dimen/activity_vertical_margin"  
        android:paddingLeft="@dimen/activity_horizontal_margin"  
        android:paddingRight="@dimen/activity_horizontal_margin"  
        android:paddingTop="@dimen/activity_vertical_margin"  
        android:theme="@style/ThemeOverlay.AppCompat.Dark"  
        android:orientation="vertical"  
        android:gravity="bottom">    

        <ImageView  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:paddingTop="@dimen/nav_header_vertical_spacing"  
            app:srcCompat="@mipmap/ic_launcher_round"  
            android:contentDescription="@string/nav_header_desc"  
            android:id="@+id/imageView"/>    

        <TextView  
            android:layout_width="match_parent"  
            android:layout_height="wrap_content"  
            android:paddingTop="@dimen/nav_header_vertical_spacing"  
            android:text="@string/nav_header_title"  
            android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>    

        <TextView  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:text="@string/nav_header_subtitle"  
            android:id="@+id/textView"/>  

    </LinearLayout>  

Ответы [ 2 ]

0 голосов
/ 22 июня 2019
package com.example.drauwertab20190621

import android.os.Bundle
import android.support.design.widget.FloatingActionButton
import android.support.design.widget.Snackbar
import android.support.design.widget.TabLayout
import android.support.v4.view.ViewPager
import android.support.v7.app.AppCompatActivity
import com.example.drauwertab20190621.ui.main.SectionsPagerAdapter

class Main3Activity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main3)

        val sectionsPagerAdapter = SectionsPagerAdapter(this, supportFragmentManager)
        val viewPager: ViewPager = findViewById(R.id.view_pager)
        viewPager.adapter = sectionsPagerAdapter
        val tabs: TabLayout = findViewById(R.id.tabs)
        tabs.setupWithViewPager(viewPager)
        val fab: FloatingActionButton = findViewById(R.id.fab)

        fab.setOnClickListener { view ->
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                .setAction("Action", null).show()
        }
//backbutton in actionbar
            val actionbar = supportActionBar

            actionbar!!.title="1st Division"

            actionbar.setDisplayHomeAsUpEnabled(true)
            actionbar.setDisplayShowHomeEnabled(true)
    }
}
0 голосов
/ 22 июня 2019

Прежде всего, не рекомендуется называть деятельность "Main3activity". - Проверьте здесь

Для установки кнопки со стрелкой назад на панель инструментов необходимо добавить:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

Вы также можете использовать это во Фрагментах, которые прикреплены к ActionBarActivities, вы можете использовать его так:

((YourActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((YourActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);
...