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();