с использованием C # 6.0
$ "Date- {DateTime.Now:yyyyMMddHHmmss}"
Я думаю, вы хотите переопределить операцию нажатия кнопки «домой». Вы можете переопределить эту функциональность, как это в своей деятельности.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(getApplicationContext(),"Back button clicked", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
Существует несколько способов настройки кнопки возврата в строке:
1) метод .setDisplayHomeAsUpEnabled(true);
сделает это, а затем вы можете просто отменить android.R.id.home
2 ) добавление <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="my.package.parrent" />
в Android Manifest, но в этом случае вы не можете переопределить android.R.id.home
в OnOptionsMenuSelected.
.. для тех, кто задается вопросом, почему он не работает для них ...
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
}
return true;
}
Если вы хотите вернуться к предыдущему экземпляру Activity, нажав кнопку «Главная страница ActionBar», не обновляя его, вы можете переопределить метод getParentActivityIntent, чтобы использовать тот из заднего стека:
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public Intent getParentActivityIntent() {
return super.getParentActivityIntent().addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
EDIT: Также вы можете добиться того же результата, установив для параметра launchMode вашей родительской активности значение singleTop. Поэтому установите android:launchMode="singleTop"
на родительскую активность в манифесте. Или вы можете использовать флаг FLAG_ACTIVITY_CLEAR_TOP с намерением UP. ссылка: Предоставление навигации вверх
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == android.R.id.home) {
onBackPressed();
return true;
}
//noinspection SimplifiableIfStatement
if (id == R.id.signIn) {
return true;
}
return super.onOptionsItemSelected(item);
}
///////////////////
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
Если вы хотите, чтобы кнопка возврата ActionBar вела себя так же, как кнопка аппаратного возврата:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return false;
}
setHasOptionsMenu(true)
в методе onCreate фрагмента
– wilddev
16 June 2017 в 06:12
Две вещи, чтобы иметь в виду, что пользователь может нажать кнопку «Назад» или нажать кнопку входа в панель действий. Итак, если вы хотите перенаправить его в тот же пункт назначения, вы можете это сделать.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return false;
}
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
startActivity(intent);
finish();
}
Это приведет к намерению пользователя нажать любую клавишу или кнопку панели действий.
Извините, мой последний ответ, но для всех, кто пришел на эту страницу с тем же вопросом, я попробовал следующее:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
...
if (item.getItemId() == android.R.id.home) {
....
}
....
}
, но это не удалось поймать кнопку «Назад» ,
В конце концов я нашел метод, который работал для меня на https://stackoverflow.com/a/37185334/3697478 , который должен переопределить «onSupportNavigateUp ()», поскольку я используя панель действий из библиотеки поддержки AppCompatActivity. (Существует эквивалент «onNavigateUp ()» для новой библиотеки инструментов / панели инструментов.)
@Override
public boolean onSupportNavigateUp(){
finish();
return true;
}
, и я удалил раздел «android: parentActivityName =». MainActivity из файла манифеста.
Я достиг этого, используя всего лишь два шага:
Шаг 1: перейдите в AndroidManifest.xml и добавьте параметр в тег - android: parentActivityName = ". home.HomeActivity"
example:
<activity
android:name=".home.ActivityDetail"
android:parentActivityName=".home.HomeActivity"
android:screenOrientation="portrait" />
Шаг 2: в ActivityDetail добавьте действие для предыдущей страницы / активности
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
return true;
наreturn super.onOptionsItemSelected(item)
. Затем вы можете что-то сделать, когда пользователь нажимает кнопку назад на панели действий, но сохраняет ту же функциональность кнопки. – kumaheiyama 16 February 2015 в 20:55