方法返回时,将重置onActivityResult中设置的类变量

ivc*_*eto 6 android

我有一项活动,让用户选择一个电话号码.当然,我希望我的班级能够记住所选联系人的ID,所以我将其保存在课程领域.但是当onActivityResult方法返回时,我的类变量被重置.这是我正在尝试做的事情:

    Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
    startActivityForResult(intent, PICK_CONTACT); 

    ...

    public void onActivityResult(int reqCode, int resultCode, Intent intent){
        super.onActivityResult(reqCode, resultCode, intent);       
        switch(reqCode){
            case(PICK_CONTACT):
                if(resultCode == Activity.RESULT_OK){
                    Uri contactData = intent.getData();
                    Cursor c = managedQuery(contactData, null, null, null, null);
                    if(c.moveToFirst()){
                        contactName = c.getString(c.getColumnIndexOrThrow(People.NAME));
                        contactId = c.getInt(c.getColumnIndexOrThrow(People._ID));

        break;
Run Code Online (Sandbox Code Playgroud)

当我在此方法中设置断点时,contactName和contactId的值正如我所期望的那样,但是一旦该方法返回,值就会以某种方式重置为其默认值.很明显我错过了一些东西,但我不确定我做错了什么或遗忘了.

谢谢!

伊娃

Man*_*ish 0

不确定您是否还需要这方面的帮助。当您的 Activity 重新启动时,onActivityResult 将在 onResume 之前调用。确保您没有重置 onResume 中的变量值。

当您的 Activity 重新启动时,您将在 onResume() 之前立即收到此调用。

http://developer.android.com/reference/android/app/Activity.html#onActivityResult(int , int, android.content.Intent)