13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ActionBarの左上の(<)戻るボタンが上手くいかない。

Posted at

画面遷移とかすると、ActionBarの左上に(<)みたいな戻るボタン出てきますよね。
設定したんですが、何故か上手くいかなくて、結構実は悩んでたので少しメモしておく。でも実際とっても簡単。

ちなみに、もしかしたら同じような些細な事で悩んでるかもしれないので、書いときます。

例えばこんな感じ。onOptionsItemSelectedの中にR.id.homeとかで書くじゃないですか。そう。僕はR.id.homeで書いてて作動しませんでした。なので、その前にandroid.R.id.home:としてみると作動する。
R.id.homeをandroid.R.id.homeにするだけ。これだけです。

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

で、ソフトウェア技術ドキュメントを勝手に翻訳をしっかり読ませていただきました所

ユーザがアイコンをタップすると、システムはアクティビティの onOptionsItemSelected() メソッドを android.R.id.home の ID を渡して呼び出します。したがって、 onOptionsItemSelected() メソッドには android.R.id.home に対してリッスンする条件を追加し、ホームアクティビティを開始したり、最近のフラグメントのトランザクションをスタックからポップして取り出すなどして、適切なアクションを実行する必要があるます。

か、書いてある。しかも普通の人は間違えないんだろうな。雑魚だな俺。

ちなみにStackOverFlowで外国の方が

R.layout.* are layouts you provide (in res/layout, for example).
android.R.layout.* are layouts that ship with the Android SDK.

R.layoutはお前が作ったものだし、android.R.layoutはAndroid SDKのだよって
って言ってる。(多分)

参考にしよう。

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?