当前位置: 首页 > 知识库问答 >
问题:

按“活动”对话框上的“后退”按钮,停止第一个活动

轩辕实
2023-03-14

我目前正在处理一个Android项目,当用户在使用对话框主题的活动上按后退按钮时,我遇到了问题。

基本上,我有一个活动,让我们称之为我的活动,第二个活动使用@android: style/Theme.Holo.Dialog称为MyDialog。

当MyDialog活动显示在屏幕上时,活动对话框在对话中按预期启动,但当用户按下返回按钮时,对话框活动按预期关闭,但启动活动即MyActive似乎结束了,我只是得到一个空白屏幕。

我没有为开始活动设置任何标志,所以我不明白它为什么会这样。下面是我用来启动对话活动的代码。

public OnItemClickListener mListView = new OnItemClickListener() {

    public void onItemClick(AdapterView<?> arg0, View view, int position,
            long id) {
        String selection = ((TextView)view).getText().toString();
        StringTokenizer st = new StringTokenizer(selection, "\n");
        String name = st.nextToken();
        String username = st.nextToken();
        Intent intent = new Intent(PasswordList.this, LoginSelectionManager.class);
        intent.putExtra("name", name);
        intent.putExtra("username", username);
        startActivity(intent);
    }
};

根据请求更新下面是MyActivity的onResume方法的代码

@Override
public void onResume()
{
    super.onResume();
    populateListArray();
}

所有这些都是调用一个函数,该函数使用来自数据库的数据重新填充ListView数组适配器。下面是这个的代码

private void populateListArray()
{

    ArrayList<Spanned> passwords = managePasswordList.getPasswordList();
    if (passwords != null)
    {
        passwordArrayAdapter = new ArrayAdapter<Spanned>(this, 
                android.R.layout.simple_list_item_1, passwords);
        setListAdapter(passwordArrayAdapter);
        passwordArrayAdapter.setNotifyOnChange(true);
        myListView.setTextFilterEnabled(true);
    }
}

共有2个答案

严柏
2023-03-14

您需要为启动新活动的意图设置标志。这可以通过intent.setFlags(intent…)完成,其中intent是一个intent对象。有关详细信息,请查看Android文档。

单喜
2023-03-14

将日志放在两个活动的onFinish中,看看哪些活动实际上完成了...我怀疑对话框活动在按回时完成...

您获得空白屏幕的事实意味着您的活动尚未完成,只是列表视图为空。

所以出现的下一个问题是为什么您的密码列表在onResume中为空。您真的需要在onResume中设置适配器吗?请参阅将其移动到onCreate...

 类似资料:
  • 我正在使用android 2.1,希望在Mapsavity上添加一个后退按钮。我在这一页上尝试了什么[在操作栏上显示后退按钮,但应用程序崩溃。我已经按照另一个论坛的建议将extends FragmentActivity替换为AppCompatActivity,但应用程序仍然崩溃。我知道这与操作栏有关,因为如果我删除它,应用程序就会工作。操作栏似乎为空。我被卡住了,已经启动了应用程序数次。下面是错误

  • 我有一个活动,当我的应用程序首次启动时开始(只有一次)。该活动允许用户选择主题。然后当他们按下完成键时,我完成了这项活动。这会将用户引导到主活动。但是当用户按下返回按钮时,它会返回到第一次启动的活动(我使用完成()关闭的活动)。但我想要的是,应用程序应该关闭时,用户按下返回按钮从主活动(总是)。我在两个类中都重写了onBackPress。 这两个类中的onBackPressed方法如下所示: 主活

  • 我有一个玩家活动和浮动玩家(服务),点击后退按钮后,玩家活动关闭,浮动玩家开始行动,当我点击浮动玩家时,我想回到玩家活动,但没有再次运行创建方法。 我在StackOver Flow中读到了很多解决方案,特别是使用FLAG\u ACTIVITY\u CLEAR\u TOP和FLAG\u ACTIVITY\u SINGLE\u TOP标志,或者将android:launchMode=“singleTa

  • 这里发生的情况是,一旦按下后退按钮,活动就会重新加载,并再次按下后退按钮退出应用程序。我希望它是一次性的,即第一次 我尝试了很多方法,比如尝试onBackPressed方法,但都没有用。我想解决这个问题,当用户按下后退按钮时,他应该退出应用程序。同样的情况也发生在其他活动中,其中我有一个登录页面,一旦用户来到登录页面,如果他希望退出应用程序并按下后退按钮,那么在我的情况下,登录页面再次被重新加载,

  • 我用这个教程来实现facebook登录等。 Facebook登录 我在这里添加了新的片段来显示朋友列表。现在,当我在新添加的片段上按下后退按钮时,它会把我带到SPLASH片段,我想要动作栏上同样的后退按钮行为。这意味着当我在我的新片段上时,它会在动作栏上显示一个后退按钮。按下后退按钮会把我带回SPLASH屏幕。

  • 我试图用这段代码来显示我的个人档案活动: 当我点击Profile菜单项时,我可以看到我的ProfileActivity,但我的ActionBar上没有任何back按钮来返回我以前的活动。 那么,我如何显示一些后退按钮?我的代码是否正确以显示菜单中的活动?