自定义标题栏上的Android主页按钮

时间:2011-06-05 11:56:18

标签: android title

我在自定义标题栏上构建了主页按钮(使用图片到按钮)。 我的问题是每次都单击此按钮。它会去主要的。 停留在主页面并单击按钮。它会一次又一次地出现在主页面上。 我怎样做?? 我希望它不会在主要时保持主要或不能在主页面中单击此按钮。

你明白吗?

请帮帮我 谢谢

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();但它无法解决我的问题。

来自example:main>第1页> (点击主页)>主要>第2页> (点击主页)>主

在移动设备上点击后退按钮

周期是:主要>第2页>主要>第1页>主要>超出应用程序。

在使用finish()后点击手机上的后退按钮;

周期是:主要>主要>主要>超出应用程序。

3 个答案:

答案 0 :(得分:1)

在您粘贴的代码中,您明确定义了intent以转到MainActivity.class。如果您不希望主页按钮返回到“mainactivity”,那么您需要定义不同的意图。否则,请粘贴您不希望主页按钮返回主页的其他活动中的代码。

此外,如果您希望主页按钮在主页面中不执行任何操作,则只需设置onClickListener即可。如果你设置一个监听器并定义intentMainActivity,那么它当然会继续主...

答案 1 :(得分:0)

您可能希望将主要活动的启动模式定义为singleTop。这样你就不会得到奇怪的“main - > main - > main”序列。

答案 2 :(得分:0)

从子页面导航到主页时添加标志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();
    }
});