画面遷移とかすると、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のだよって
って言ってる。(多分)
参考にしよう。