Я знаю, что у нас есть кнопка возврата в андроиде, чтобы вернуть нас в предыдущую форму, но мой руководитель группы попросил установить функциональность кнопки "Назад" на кнопке
Как я могу это сделать?
Я знаю, что у нас есть кнопка возврата в андроиде, чтобы вернуть нас в предыдущую форму, но мой руководитель группы попросил установить функциональность кнопки "Назад" на кнопке
Как я могу это сделать?
Вы должны использовать finish()
, когда пользователь нажимает кнопку, чтобы перейти к предыдущему действию.
Button backButton = (Button)this.findViewById(R.id.back);
backButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
В качестве альтернативы, если вам действительно нужно, вы можете попытаться запустить свой собственный задний ключ:
this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
Выполните обе эти операции.
Если вам нужна точная функциональность кнопки "Назад" в пользовательской кнопке, почему бы просто не вызвать yourActivity.onBackPressed() таким образом, если вы переопределить функциональность подкладки, ваша пользовательская кнопка будет вести себя одинаково.
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// your code here
return false;
}
return super.onKeyDown(keyCode, event);
}
layout.xml
<Button
android:id="@+id/buttonBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="finishActivity"
android:text="Back" />
Activity.java
public void finishActivity(View v){
finish();
}
по теме:
Если вы находитесь внутри фрагмента, тогда вы пишете следующую строку кода внутри вашего прослушивателя getActivity().onBackPressed();
, getActivity().onBackPressed();
это отлично работает для меня.
Ну, ответ от @sahhhm не работал для меня, мне нужно было вызвать backKey с пользовательской кнопки, так что я просто позвонил,
backAction.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyRides.super.onBackPressed();
}
});
и это работает как шарм. Надеюсь, это поможет и другим.
С помощью этого кода я решил мою проблему. Для кнопки "Назад" вставьте эти две строки кода. Надеюсь, это поможет вам.
Вставьте этот код только по нажатию кнопки
onBackPressed();
Пример:-
Button backButton = (Button)this.findViewById(R.id.back);
backButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});