Включить домашнюю кнопку ActionbarSherlock, Sherlockfragment

Я хочу включить кнопку дома в моем фрагменте. Этот вопрос задают раньше, но для активности.
Я пытался …

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

… но это не работает.
Вот мой код:

 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); } }; } 

Как вы можете включить кнопку «Дом» на «Шерлок-Фрагмент»?

Solutions Collecting From Web of "Включить домашнюю кнопку ActionbarSherlock, Sherlockfragment"

Вы пробовали добавить нижеприведенный код основной Activity – тот, который extends SherlockActivity или extends SherlockFragmentActivity ?

 ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); 

Я не думаю, что вы можете getSupportActionBar в чем-то, что только extends SherlockFragment getSupportActionBar .

Вам также необходимо переопределить выбор меню опций:

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

Имейте в виду, что приведенный выше код будет работать в активности (следовательно, finish() ). Если вы не используете Activity (что было бы странно для меня …), вам нужно будет его заменить.

Самое простое решение – выполнить следующие три простых шага:

1 – Объявите в AndroidManifest который является родителем вашей активности:

 <activity android:theme="@style/Theme.MyApp" android:name="com.example.CurrentActivity" android:parentActivityName="com.example.MainActivity" > <!-- Parent activity meta-data to support 4.0 and lower --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.ParentActivity" /> 

2 – добавьте значок «Вверх» на панели действий, просто вызывая метод onCreate :

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

3 – Укажите действие, которое следует открыть, когда пользователь нажимает кнопку «Вверх»:

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

ПРИМЕЧАНИЕ. Если вы вызываете (как предложено @Eric):

 finish(); 

вместо:

 NavUtils.navigateUpFromSameTask(this); 

Вы на самом деле не выполняете «навигацию вверх», так как в документации говорится:

Навигация вверх отличается от обратной навигации, предоставляемой кнопкой «Назад системы». Кнопка «Назад» используется для навигации в обратном хронологическом порядке через историю экранов, с которыми недавно работал пользователь. Обычно он основан на временных взаимосвязях между экранами, а не на иерархической структуре приложения (что является основой для навигации).