向上导航确认

时间:2015-06-19 05:06:15

标签: java android

我有一个得分保持应用程序,其中父活动允许用户输入自定义团队名称。

enter image description here

然后用户可以在游戏中保持得分。

enter image description here

如果用户在得分保持活动中点击后退按钮(返回到团队选择器活动),由于得分数据丢失,我已经实施了确认:

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
            .setIcon(android.R.drawable.ic_dialog_alert)
            .setTitle("Return to team selector")
            .setMessage("Returning to the team selector will reset the scores. Are you sure " +
                    "you want to continue?")
            .setPositiveButton("Yes", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();
                }

            })
            .setNegativeButton("No", null)
            .show();
}

我想在用户“向上导航”到父母(即团队选择器)时实施类似的确认,因为将会有相同的评分数据丢失。但是,我遇到了这样的问题。

我是否找不到类似的“onUpPressed”功能?关于如何解决这个问题的任何其他指导意见表示赞赏。

3 个答案:

答案 0 :(得分:1)

android中没有onUpPressed方法。您需要在onOptionsItemSelected方法中编写它并在那里处理它。

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()){
        case R.id.home:
            new AlertDialog.Builder(this)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .setTitle("Return to team selector")
                .setMessage("Returning to the team selector will reset the scores. Are you sure " +
                        "you want to continue?")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        NavUtils.navigateUpFromSameTask(this);
                        return true;
                    }

                })
                .setNegativeButton("No", null)
                .show();
    }

    return super.onOptionsItemSelected(item);
}

答案 1 :(得分:1)

Override此方法

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) {
           // do your stuff here for Upnavigation
             onBackPressed();
        } 
        return super.onOptionsItemSelected(item);
    }

答案 2 :(得分:1)

是的,你可以做到......

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
    }
    return super.onOptionsItemSelected(item);
}