131

多くのアプリ(カレンダー、ドライブ、Playストア)では、ボタンをタップして新しいアクティビティを入力すると、タイトルバーのアイコンが戻るボタンに変わりますが、私が作成しているアプリでは、それは行われません。そのアイコンで前の画面に戻るにはどうすればよいですか?

4

26 に答える 26

58

最終的に、アクションバー/ツールバーに戻るボタンを適切に追加することができました

@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}  

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
    }

    return super.onOptionsItemSelected(item);
}

public boolean onCreateOptionsMenu(Menu menu) {
    return true;
}
于 2014-11-30T12:00:12.570 に答える
12

あなたの活動が活動を拡張する場合

public class YourActivity extends Activity {

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

        getActionBar().setHomeButtonEnabled(true);

        [...]
    }

    [...]
}

アクションが AppCompatActivity を拡張する場合

public class YourActivity extends AppCompatActivity {

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

            getSupportActionBar().setHomeButtonEnabled(true);

            [...]
        }

        [...]
    }

これ以上何もする必要はありません。追加アクションを参照してください

[オプション] 親アクティビティを明示的に定義するには、Manifest.xml を次のように変更します。

<application ... >
    ...
    <!-- The main/home activity (it has no parent activity) -->
    <activity
        android:name="com.example.myfirstapp.MainActivity" ...>
        ...
    </activity>
    <!-- A child of the main activity -->
    <activity
        android:name="com.example.myfirstapp.YourActivity "
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.example.myfirstapp.MainActivity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />
    </activity>
</application>

親アクティビティの指定を参照してください

于 2016-09-13T10:23:41.333 に答える
8

まず onCreate 関数に次の行を追加します

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

次に、コードに次の関数を追加します。

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
        }

        return super.onOptionsItemSelected(item);
    }
于 2018-04-23T13:29:04.827 に答える
5

グーグルがここで説明しているように、最も簡単な方法とベストプラクティス:

1. childActivity の親を次の場所に追加しますAndroidManifest.xml

<activity 
        android:name=".ChildActivity"
        android:parentActivityName=".ParentActivity" >
</activity>

2. childActivity で戻るボタンをアクティブにします。

myActionOrActionSupportBar.setDisplayHomeAsUpEnabled(true);

私のために働いた、私はそれがあなたにとってもうまくいくことを願っています.

于 2016-08-31T15:49:45.837 に答える
5

Android Studio で 5.1 の新しいサポート ライブラリを使用している場合は、代わりにこれを AppCompatActivity で使用できます。

 ActionBar actionBar = getSupportActionBar();
 actionBar.setHomeButtonEnabled(true);
 actionBar.setDisplayHomeAsUpEnabled(true);
 actionBar.setHomeAsUpIndicator(R.mipmap.ic_arrow_back_white_24dp);
 actionBar.setDisplayShowHomeEnabled(true);

乾杯。

于 2015-07-25T07:27:23.217 に答える
3

2020 年に行う必要があること:
(MainActivity に戻りたいことを考慮して)

protected void onCreate(Bundle savedInstanceState){
    ...
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

public boolean onOptionsItemSelected(MenuItem item) {
    Intent myIntent = new Intent(getApplicationContext(), MainActivity.class);
    startActivityForResult(myIntent, 0);
    return true;
}
于 2020-03-28T08:07:30.763 に答える
2

以下のコードをマニフェスト ファイルに追加する必要があります。戻る矢印機能を追加するアクティビティを検索します。見つかった場合は問題ないか、アクティビティを作成します

<activity android:name=".SearchActivity">

</activity>

次に、間に次の 3 行のコードを追加します。

<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.raqib.instadate.MainActivity" />

このコードを onCreate(); に追加することを忘れないでください。戻る矢印が必要な特定のアクティビティの方法。

        Toolbar toolbar = (Toolbar) findViewById(R.id.searchToolbar);
    setSupportActionBar(toolbar);
    try{
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }catch(NullPointerException e){
       Log.e("SearchActivity Toolbar", "You have got a NULL POINTER EXCEPTION");
    }

これが私が問題を解決した方法です。ありがとう。

于 2016-12-18T17:14:45.953 に答える
2

他の回答では、Toolbarウィジェットの XML でこれを設定することもできます。

app:navigationIcon="?attr/homeAsUpIndicator"

例えば:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:navigationIcon="?attr/homeAsUpIndicator"
    app:popupTheme="@style/AppTheme.PopupOverlay"
    app:title="@string/title_activity_acoustic_progress" />
于 2019-05-13T14:33:33.120 に答える
1

ActionBar を使用している場合は、このドキュメントを読みたいと思うでしょう http://developer.android.com/reference/android/app/ActionBar.html#setDisplayHomeAsUpEnabled(boolean)

次に、メソッド onOptionsItemSelected(MenuItem) を上書きし、android.R.id.home イベントが入ってくるのを探す必要があります。その後、ユーザーがアクションバーの戻るボタンをクリックしたことがわかります。

于 2013-01-27T06:53:13.790 に答える
1

アプリ マニフェストで親アクティビティを指定することにより、コードなしで実行することもできます。アクティビティ A に移動するアクティビティ B に戻るボタンが必要な場合は、マニフェストでアクティビティ B の親としてアクティビティ A を追加するだけです。

于 2017-06-30T16:57:08.497 に答える
0

onBackPressed()onClick リスナーを単純に配置することもできます。これにより、ボタンが Android アプリのデフォルトの「バックアップ/アップ」ボタンのように機能します。

于 2015-07-09T14:55:22.593 に答える
0
Toolbar toolbar=findViewById(R.id.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

if (getSupportActionBar()==null){
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==android.R.id.home)
    finish();
return super.onOptionsItemSelected(item);
}
于 2018-07-07T06:56:02.313 に答える