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

时间:2012-06-24 17:42:14

标签: android android-intent android-activity

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

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

当屏幕上显示MyDialog活动时,活动对话框会在对话框中按预期启动,但当用户按下后退按钮时,对话框活动会按预期关闭,但启动活动即MyActivity似乎已完成,我只是得到一个空白的屏幕。

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

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 个答案:

答案 0 :(得分:0)

您需要设置启动新Activity的intent的标志。它可以通过intent.setFlags(Intent。...)来完成,其中intent是一个Intent对象。查看Android文档以获取更多详细信息。

答案 1 :(得分:0)

将日志放入两个活动的onFinish中,并查看哪些活动已完成...我怀疑对话活动在按下后完成..

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

因此,出现的下一个问题是onResume中您的密码列表为空的原因。你真的需要在onResume中设置适配器吗?请参阅将其移至onCreate ..