#android #title
#Android #Название
Вопрос:
Я встроил кнопку Home в пользовательскую строку заголовка (используйте изображение для кнопки). Моя проблема заключается в том, чтобы каждый раз нажимать эту кнопку. Она перейдет в main. Когда останетесь на главной странице и нажмете кнопку. Она будет возвращаться на главную страницу снова и снова. Как я делаю?? Я хочу, чтобы она не переходила на главную, когда остается главной, или не могу нажать эту кнопку на главной странице.
Вы понимаете?
Пожалуйста, помогите мне, спасибо
public class CustomTitleBar extends Activity {
protected ImageButton toHome;
protected TextView title;
protected ImageView icon;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);
toHome = (ImageButton) findViewById(R.id.header);
title = (TextView) findViewById(R.id.title);
icon = (ImageView) findViewById(R.id.icon);
ProgressBar titleProgressBar = (ProgressBar) findViewById(R.id.loadProgress);
titleProgressBar.setVisibility(ProgressBar.GONE);
/* -- Button to HOME -- */
toHome.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent goHome = new Intent(Intent.ACTION_MAIN);
goHome.setClass(CustomTitleBar.this, MainActivity.class);
startActivity(goHome);
finish();
}
});
}
}
есть люди, которые говорят мне использовать finish (); но это не может решить мою проблему.
из примера: главная > страница 1 > (нажмите главная) > главная > страница 2 > (нажмите главная) > главная
при нажатии кнопки «Назад» на мобильном устройстве
цикл таков: главная> страница 2> главная> страница 1 > главная> выход из приложения.
при нажатии кнопки «Назад» на мобильном устройстве после того, как я использую finish ();
цикл таков: главная> главная > главная> выход из приложения.
Ответ №1:
В вставленном коде вы явно определили an intent
для перехода к MainActivity.class
. Если вы не хотите, чтобы кнопка «Домой» возвращалась к вашему «mainactivity», тогда вам нужно определить другое назначение. В противном случае вставьте код из других ваших действий, где вы не хотите, чтобы кнопка «Домой» возвращалась к основному.
Кроме того, если вы хотите, чтобы кнопка «Домой» ничего не делала, когда вы находитесь на главной странице, тогда просто не устанавливайте onClickListener
. Если вы настроите прослушиватель и определите intent
переход MainActivity
, то, конечно, он продолжит переходить к main…
Ответ №2:
Добавьте намерение флага.ОТМЕЧАЙТЕ_АКТИВНОСТЬ_CLEAR_TOP при переходе с подстраницы на главную. Вот мой пример кода:
/* -- Button to HOME -- */
toHome.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent goHome = new Intent(Intent.ACTION_MAIN);
goHome.setClass(CustomTitleBar.this, MainActivity.class);
goHome.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(goHome);
finish();
}
});
Комментарии:
1. Большое вам спасибо, но как это использовать?
2. Ха-ха, это: toHome.setOnClickListener(new OnClickListener() { public void onClick (View v) { Намерение намерения = новое намерение (это, MainActivity.class ); intent.addFlags (намерение. ФЛАГ_АКТИВНОСТИ (CLEAR_TOP); startActivity (намерение); finish(); } });
3. Намерение конструктора (новый вид. OnClickListener(){}, класс<MainActivity>) не определен….
Ответ №3:
Вероятно, вы хотите определить режим запуска вашего основного действия как singleTop
. Таким образом, вы не получите странную последовательность «главная -> main -> main».
Комментарии:
1. Большое вам спасибо. Я тестирую, чтобы использовать результат, когда остаетесь на главном и нажимаете кнопку, все будет закрыто.