Кнопка Android Home в пользовательской строке заголовка

#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. Большое вам спасибо. Я тестирую, чтобы использовать результат, когда остаетесь на главном и нажимаете кнопку, все будет закрыто.