2013-07-21 16 views
0

我为多项选择制作了自定义联系人选择器。现在我想显示我选择的联系人列表,但我没有这样做。我想在我的CreateTab布局中显示它。任何人都请帮助我。onActivityResult失败

在我CreateTab.class

//To start ContactList.class 
private OnClickListener click_listener = new OnClickListener() { 

    @Override 
    public void onClick(View view) { 


     switch(view.getId()) { 
     case R.id.add_button: 
      Intent i = new Intent(getApplicationContext(), ContactList.class); 
      startActivityForResult(i, 100); 

      } 
     }  
}; 


@Override 
protected void onActivityResult(int requestCode,int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(resultCode == RESULT_OK){ 
     data.getExtras().getString("str"); 
    } 
} 

在我ContactList.class

   @Override 
      public void onClick(View v) { 
       StringBuilder checkedcontacts= new StringBuilder(); 
       System.out.println("............"+ma.mCheckStates.size()); 
       for(int i = 0; i < name1.size(); i++) 
        { 
        if(ma.mCheckStates.get(i)==true) 
        { 
          checkedcontacts.append(name1.get(i).toString()); 
          checkedcontacts.append("\n"); 
        } 

        else 
        { 
         System.out.println("..Not Checked......"+name1.get(i).toString()); 
        } 

       }  

        Intent i = new Intent(); 
        i.putExtra("str", checkedcontacts.toString()); 
        setResult(RESULT_OK,i); 
        finish(); 
      }  
     }); 
+0

你读过了这个问题的答案? http://stackoverflow.com/questions/10407159/android-how-to-manage-start-activity-for-result或这个问题? http://stackoverflow.com/questions/6548340/onactivityresult-is-never-called?rq=1 – ethan

回答

1

不要”使用RESULT_OK开始活动的结果。而是使用自定义请求代码。

例如:

int PICK_CONTACT_REQUEST_CODE = 100; 
//.... 
startActivityForResult(i, PICK_CONTACT_REQUEST_CODE); 
+0

什么是100?所以我使用int PICK_CONTACT_REQUEST_CODE = 100;在我的情况呢?对不起,我是新手 –

+0

是的,就像那样使用,当然它不需要特别是'100'。你可以把另一个号码。这个想法是,你应该开始一个特定的请求代码结果的活动。 –

+0

我使用了这段代码。请参阅,谢谢。 https://gist.github.com/anonymous/aea19b2be9af9519bbb3。它不工作。 –