1. ホーム
  2. java

[解決済み] Android ActionBarのバックボタンを実装するには?

2022-05-10 02:45:29

質問

リストビューを持つアクティビティがあります。ユーザーがアイテムをクリックすると、アイテムのビューアが開きます。

List1.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {

        Intent nextScreen = new Intent(context,ServicesViewActivity.class);
        String[] Service = (String[])List1.getItemAtPosition(arg2);

        //Sending data to another Activity
        nextScreen.putExtra("data", datainfo);
        startActivityForResult(nextScreen,0);
        overridePendingTransition(R.anim.right_enter, R.anim.left_exit);
    }
});

これは問題なく動作しますが、アクションバー上のアプリアイコンの横にある戻る矢印が有効になりません。何か見落としているのでしょうか?

解決方法を教えてください。

正しい答えは、すでにSelvinが投稿しています。ここでは、きれいなコードで解決策を説明します。

public class ServicesViewActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // etc...
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }
}

機能 NavUtils.navigateUpFromSameTask(this) を使用するには、AndroidManifest.xml ファイルで親アクティビティを定義する必要があります。

<activity android:name="com.example.ServicesViewActivity" >
    <meta-data
     android:name="android.support.PARENT_ACTIVITY"
     android:value="com.example.ParentActivity" />
</activity>

参照 こちら をご覧ください。