2017-11-22 4 views
1

私は3つの異なる活動をしています。私は、ActionToolbarを構築するために、メニューのXMLファイルを作成したボタンなどが、私はマニフェストに、このようなコードを追加する決定を見つけた「バックボタン」をしました:"メニュー"または "マニフェスト"戻るボタンを前のアクティビティに戻るには

android:parentActivityName=".MainActivity"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value=".MainActivity"/> 

質問は以前に返す方法です親活動ではないアクティビティがあることがあります。メニューの助けを借りてこれをすることはできますか?私はそこに戻るボタンを追加する方法を知っていますが、それはツールバーの行の最後であり、アクティビティのタイトルの前にはありません。

menu_add_task.xml:

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/doneTask" 
     android:title="@string/doneTask" 
     android:icon="@mipmap/ic_done" 
     app:showAsAction="ifRoom" /> 

</menu> 

activity_add_task.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@color/the_darkest_grey"> 
</android.support.constraint.ConstraintLayout> 

AddTaskActivityクラス:アクティビティ、バックボタン

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 

public class AddTaskActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_add_task); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     getMenuInflater().inflate(R.menu.menu_add_task, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     switch (item.getItemId()){ 

      case R.id.doneTask: 
       finish(); 
       return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

} 
+0

私は、あなたが「戻る」ボタンとボタンの「アップ」との違いを見てお勧め:https://developer.android.com/design/patterns/navigation.html –

+0

私は、感謝のアドバイスに従っ! – Jeavie

答えて

0

ガッチャであるべきです。

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 

public class AddTaskActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_add_task); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     getMenuInflater().inflate(R.menu.menu_add_task, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     switch (item.getItemId()){ 

      case android.R.id.home: 
       finish(); 
       return true; 

      case R.id.doneTask: 
       finish(); 
       return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

} 
+0

これがどのように問題を解決するか説明してください。 –

+0

私はandroid.R.id.homeがアクションバーの上/ホームボタンへの応答であると理解しています。通常NavUtils.navigateUpFromSameTask(this);親アクティビティーに戻るためにそこに使用されていますが、私はそれをfinish()に置き換えました。親の代わりに前の値を返します。できます。 – Jeavie

関連する問題