启用主页按钮ActionbarSherlock,Sherlockfragment

use*_*326 5 android android-fragments actionbarsherlock android-homebutton

我想在我的片段中启用主页按钮.这个问题早先被提出,但是对于一项活动.
我试过了 ...

 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

......但这不起作用.
这是我的代码:

import com.actionbarsherlock.R;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.view.MenuItem;

import android.support.v4.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;

public class SafanTab extends SherlockFragment {

    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.safantab, container, false);
    }

    public OnClickListener onOverClick = new OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent myIntent = new Intent(view.getContext(), Over_Safan.class);
            startActivityForResult(myIntent, 0);
        }
    };

    public OnClickListener onProductenClick = new OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent myIntent = new Intent(view.getContext(), Over_Safan.class);
            startActivityForResult(myIntent, 0);
        }
    };

    public OnClickListener onTwitterClick = new OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent myIntent = new Intent(view.getContext(), Over_Safan.class);
            startActivityForResult(myIntent, 0);
        }
    };

}
Run Code Online (Sandbox Code Playgroud)

如何在SherlockFragment上启用主页按钮?

Eri*_*ric 25

您还需要覆盖选项菜单选项:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        finish();
        return true;
    }
    return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

请记住,上面的代码将在一个活动中运行(因此finish()).如果你不使用Activity(这对我来说很奇怪......),那么你需要更换它.


mat*_*ers 13

您是否尝试过以下代码添加主要活动 - 那个extends SherlockActivity或者extends SherlockFragmentActivity

ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我认为你不能getSupportActionBar只做那件事extends SherlockFragment.

  • 但是`SherlockFragment`确实允许你调用`getSherlockActivity().getSupportActionBar()`. (4认同)