Я хочу показать типичную стрелу назад в активности, и что, кликнув на ней, привел меня в предыдущую активность (я загрузил новую активность típicon startActivity (intent). Я прочитал, что с:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Выходит стрела в toolbar, но кликнув, не происходит ничто.
В alguién ему решение приходит в голову?
Спасибо предвосхищенные.
Приветствие
Если extiene твой класс ActionBarActivity ты можешь использовать Toolbar как ActionBar:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(toolbar);
для того, чтобы он показал стрелу, реализует следующее:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
, Если ты не увеличиваешь ActionBarActivity, определи значок, в этом случае изображение стрелы.
miActionBar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_flecha_back));
и определи OnclickListener для того, чтобы он реализовал ее acciГіn возвращения:
miActionBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//regresar...
finish();
}
});
В AndroidManifest.xml
ты должен включать в активности, где ты будешь помещать возвращаться:
android:parentActivityName=".MainFragment"
В активности
//Appbar
Toolbar toolbar = (Toolbar) findViewById(R.id.appbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
'
Если ты только хочешь захватить, когда осуществляется пульсация в кнопку назад в ActionBar
могут с событием onSupportNavigateUp
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return false;
}
Ты должен захватывать событие onOptionsItemSelected
так мочь реализовывать то, что ты хочешь, когда он будет нажат flecha atrás
используя идентификатора android.R.id.home
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
Возможно определять один Activity
по возвращении в реализация действия возвращаться, нажимая кнопку назад физически или bóton назад бруска титула.
Заметь: Когда возвращаются в активность, отец перезагружен снова с этим методом.
Со свойством android:parentActivityName
он определяется Activity
. Также возможно определять с meta-data
в manfiest.xml
где находится ассигнование активности, ему может распределять Вашу активность отец.
<activity
android:name=".OtherActivity"
android:label="@string/title_other_activity"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
Опциональный, Если захватывается пульсация кнопки с событием onOptionsItemSelected
чтобы уполномочивать натуральное действие мы должны использовать NavUtils
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Поскольку упоминает Макс Сандовал. одинокие две вещи:
В твоем activity:
Toolbar toolbar = (Toolbar) findViewById(R.id.appbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
В твоем AndroidManifest:
добавь признак android:parentActivityName и мета-дату в активности сын (где будет кнопка возвращения), пример был бы:
<activity
android:name=".ChildActivity"
android:label="@string/title_activity_child"
android:parentActivityName=".MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>