Android 从菜单中返回按

Android 从菜单中返回按,android,android-layout,Android,Android Layout,我有一个设置菜单,用于应用程序中的所有屏幕。现在,当我单击菜单并转到特定屏幕“编辑来设置”并按“上一步”时,我无法知道菜单项是从哪个屏幕单击的。 我试着把活动的名称放在意图中,但听起来不是个好主意。。 请帮忙 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.propsmain); setTitl

我有一个设置菜单,用于应用程序中的所有屏幕。现在,当我单击菜单并转到特定屏幕“编辑来设置”并按“上一步”时,我无法知道菜单项是从哪个屏幕单击的。 我试着把活动的名称放在意图中,但听起来不是个好主意。。 请帮忙

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.propsmain);
    setTitle("Settings");
    prev_screen = getIntent().getStringExtra("prev_screen");
    try {
        final ArrayList<Properties> propsList = getProperties();
        if (propsList == null || propsList.size() == 0) {
                       // show alert
        } else {
            setListAdapter(new PropertyAdapter(this, R.layout.props,
                    propsList));
        }
        final ListView lv = getListView();
        lv.setOnItemClickListener(new OnItemClickListener() {

            // @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                Properties prop = propsList.get(arg2);
                Bundle b = new Bundle();
                b.putString("prop_name", prop.getName());
                b.putString("prop_value", prop.getValue());

                Intent intent = new Intent(SetProperties.this,
                            EditPropertyActivity.class);
                    intent.putExtras(b);
                    startActivity(intent);
                }
        });

    } catch (PropertyFileMissing e) {
        AlertDialog dialog = new AlertDialog.Builder(SetProperties.this)
                .create();
        dialog.setTitle("Failure");
        dialog.setMessage(e.toString());
        dialog.setIcon(R.drawable.error);
        dialog.setButton("Ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        });

        dialog.show();
    } 
}
}


-Abhilasha

很抱歉延迟发布答案。我有问题 使用下面的方法修复了该问题

public void onBackPressed() {
    super.onBackPressed();
    if(count == 0){
        super.onBackPressed();
    }else{
    for (int i = 0; i < count; i++) {
        super.onBackPressed();
    }

感谢所有人的帮助和指导:

你为什么不干脆叫finish;什么时候按back?这样做将导致从Stack返回一个活动对不起,我应该在我的问题中添加此项。我的菜单有一个选项设置,当我点击它时,它会打开一个列表视图,现在点击一个项目,它会打开一个对话框来编辑该项目。因此,上面给出的解决方案,即调用finish,如果我编辑3到4个项目,则不起作用。在这种情况下,当我按back键时,它只会返回到我不想要的设置屏幕。目前,我正在传递单击菜单的活动名称,在我的设置活动中,我根据名称调用该活动…很多if else语句..:它工作得非常好..但我想知道是否有其他方法可以做到这一点…让我重新表述一下,我有一个活动的屏幕,它是一个列表视图。我从另一个活动A中调用这个活动。点击一个项目,它显示了一个对话框,我可以为这个项目设置一个新的值。考虑我编辑3个项目。我按下back键,它应该从S->A输出您的所有代码。所有人都不知道你到底想做什么。还有一件事,您可以使用对话框来编辑项目。当您编辑项目3时,堆栈将变成->S->S->S。所以编辑中存在问题。你打开的对话框不是一个活动,那么为什么它会发生??
public void onBackPressed() {
    super.onBackPressed();
    if(count == 0){
        super.onBackPressed();
    }else{
    for (int i = 0; i < count; i++) {
        super.onBackPressed();
    }
    SetProperties.propsList = getProperties();
    PropertyAdapter adapter = (PropertyAdapter) SetProperties.listview.getAdapter();
    adapter.notifyDataSetChanged();
    finish();