2012-10-26 78 views
1

在我的項目中,我顯示了聯繫人屏幕,當我點擊任何聯繫人時,它應該返回到我需要顯示選定聯繫人的虛擬屏幕。OnActivityResult總是返回null在Android中的意圖數據

現在的問題是,當我從我的項目聯繫人列表中單擊並選擇聯繫人時,它總是進入我的虛擬項目屏幕,但數據始終爲空。 沒有得到它爲什麼它爲空。在我的用於顯示聯繫人屏幕的項目中,我們遵循了很多路徑。

1 HomeActivity-> TabActivity-> HomeTabFragment-> BuddyFragment(對於 表示接觸屏)

在好友片段我寫以下代碼:

Intent intent = new Intent(); 

intent.putExtra("chaton_buddy_number", buddy.getNo()); 
intent.putExtra("chaton_buddy_name", buddy.getName()); 

getActivity().setResult(Activity.RESULT_OK, intent); 

getActivity().finish(); 
return true; 

和dummyApplication我寫了下面的代碼。

public class MainActivity extends Activity { 
TextView tv; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
tv = (TextView)findViewById(R.id.textView1); 
Button button =(Button)findViewById(R.id.button1); 
button.setOnClickListener(new Button.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
       Intent intent = new Intent(); 
       intent.setAction(Intent.ACTION_SEND); 
       intent.putExtra("mChatONBuddies", true); 

    //Launching HomeActivity of my project because that one is the first activity. 
    //intent.setComponent(new ComponentName("com.sec.myproject", "com.sec.chaton.HomeActivity")); 

      startActivityForResult(intent, 0); 
     } 
    }); 
} 

意向(數據)總是在我的虛擬項目屏幕上。

我嘗試了以下的事情,但沒有幫助我。

  1. 調用getParent().getAcitivity().setResult(Activity_ResultOK, intent)
  2. 刪除了Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP的場合中使用。它也不起作用

任何其他建議,非常感謝。

+0

不BuddyFragment的活動的清單也有singletop? onActivityResult立即返回還是退出Buddyfragment之後返回? – nandeesh

+0

實際上,buddyfragment是一個通過tabActivity啓動的android片段...在tabActivity中,他們設置了SINGLE_TOP,我將其刪除但仍然不能正常工作.... –

回答

0

我做這樣的回調

時,如果你希望你的片段應該通過數據傳回其含有的活性則可以考慮使用接口來處理和傳遞數據是接口的風扇。在片段中的片段

第一步

申報如下界面

public interface iContactHelper { 
    public void onSelectContact(String contactNumber,String contactName); 
} 

第二步

申報follwoing。

iContactHelper icontactHelper; 

@Override 
public void onAttach(Activity a) { 
    super.onAttach(a); 
    icontactHelper = (icontactHelper) a; 
} 

第三步

當您需要的聯繫人信息發送到容器活動,呼籲以下。

iContactHelper.onSelectContact(buddy.getNo(),buddy.getName()); 

第四步

終於有了你的容器活動實現iContactHelper接口

@Override 
public void onSelectContact(String contactNumber,String contactName) { 
    Log.d("LOG","Contact Name " + contactName); 
    Log.d("LOG","Contact Number " + contactNumber); 
} 
+1

我無法理解您嘗試傳達它的內容...您能否請您ellobrat更多 –

相關問題