Кнопка Android Home в пользовательской строке заголовка - PullRequest
0 голосов
/ 05 июня 2011

Я построил домашнюю кнопку на пользовательском заголовке (используйте картинку для кнопки). Моя проблема - каждый раз нажимать эту кнопку. Это пойдет на главную. Когда останетесь на главной странице и нажмите кнопку. Это будет на главной странице снова и снова. Как я сделаю?? Я не хочу переходить на главную, когда остаюсь главной или не могу нажать эту кнопку на главной странице.

Ты понял?

Пожалуйста, помогите мне Спасибо

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 (); но это не может решить мою проблему.

из примера: main> page1> (нажмите кнопку home)> main> page2> (click home)> main

при нажатии кнопки возврата на мобильном телефоне

цикл: main> page2> main> page1> main> вне приложения.

при нажатии кнопки «Назад» на мобильном телефоне после использования finish ();

цикл: main> main> main> вне приложения.

Ответы [ 3 ]

1 голос
/ 05 июня 2011

В коде, который вы вставили, вы явно определили intent, чтобы перейти к MainActivity.class. Если вы не хотите, чтобы кнопка возврата домой возвращалась к вашей «основной активности», вам нужно определить другое намерение. В противном случае вставьте код из других ваших действий, если вы не хотите, чтобы кнопка возврата домой возвращалась на главную.

Кроме того, если вы хотите, чтобы кнопка «Домой» ничего не делала, когда вы находитесь на главной странице, просто не устанавливайте onClickListener. Если вы установите слушателя и определите intent для перехода на MainActivity, то, конечно, он продолжит идти к основному ...

0 голосов
/ 05 июня 2011

Добавить флаг Intent.FLAG_ACTIVITY_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();
    }
});
0 голосов
/ 05 июня 2011

Возможно, вы хотите определить режим запуска вашей основной деятельности как singleTop. Таким образом, вы не получите странную последовательность "main -> main -> main".

...