2013-07-12 42 views
16

我知道这是之前问过的,但我不太明白如何实现它。 我有一个片段“myFragment”,其中我创建了一个“myDialogueFragment”的对象。 我想从myFragment中调用myDialogueFragment时将一些值传递给myDialogueFragment。 我有一个整型数字,我想传递给myDialogueFragment并将该数字与myDialogueFragment中的其他信息一起存储在本地数据库中。如何将数据从片段传递到对话框片段

我可能会误解,但我所看到的所有代码都是关于将数据从myDialogueFragment发送回myFragment,这不是我真正想要的。

static MyDialogFragment newInstance(int num) { 

MyDialogFragment f = new MyDialogFragment(); 

// Supply num input as an argument. 
Bundle args = new Bundle(); 
args.putInt("num", num); 
f.setArguments(args); 

return f; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mNum = getArguments().getInt("num"); 
    ... 
} 

因此,此代码获取myFragment onCreate()方法内的参数。我想在myFragment()中发送参数并在myDialogueFragment中接收它们。

我该如何做到这一点?

+1

不代码实现你想要什么叫做它onActivityCreated?您的DialogFragment中有mNum,您可以在DialogFragment的整个生命周期中使用它, – Karakuri

+0

num中的片段不在DialogFragment中,我想通过DialogFragment中的num并从那里检索 –

+0

DialogFragment extends Fragment,you可以在onCreate()中完成同样的事情。 – Karakuri

回答

38

你需要的是对片段setArguments如下:

Bundle args = new Bundle(); 
args.putString("key", "value"); 
DialogFragment newFragment = new YourDialogFragment(); 
newFragment.setArguments(args); 
newFragment.show(getSupportFragmentManager(), "TAG"); 

所有你现在要做的,就是赶上这些参数在你的片段,并用它们...

,并在DIALOG片段你读它是这样的...

Bundle mArgs = getArguments(); 
String myValue = mArgs.getString("keyUsed to send it..."); 
+0

等待,我需要读取DialogueFragment内部的参数,而不是分段?这是否会是相同的程序? –

+0

您需要读取DialogFragment中的数据,将数据传递给Fragment,然后在DialogFragment中读取它... –

+0

非常感谢您:d – Ayoub

0

我叫calsswhich内FragmentDialog exdented到ActivityFragment

//TODO 1 
       Followers clickedObj = (Followers) 

       parent.getItemAtPosition(position); 
       Bundle bundle = new Bundle(); 
       bundle.putString("name", clickedObj.getFollow_name()); 
       bundle.putString("nick", clickedObj.getFollow_nickname()); 
       bundle.putString("score", clickedObj.getFollow_score()); 
       bundle.putString("title", clickedObj.getFollow_title()); 
       FragmentManager fragmentManager = getSupportFragmentManager(); 
       UserPopUp userPopUp = new UserPopUp(); 
       //TODO 1 
       userPopUp.setArguments(bundle); 
       userPopUp.show(fragmentManager, "followers"); 

和我在类扩展到DialogFragment

@Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

     //Bundle Data Cekme başlangıç 
     Bundle mArgs = getArguments(); 
     String userName = mArgs.getString("name"); 
     String userNickName = mArgs.getString("nick"); 
     String userTitle = mArgs.getString("title"); 
     String userScore = mArgs.getString("score"); 
     user_name.setText(userName); 
     nick_name.setText(userNickName); 
     challenge_title.setText(userTitle); 
     user_score.setText(userScore); 
     // bitiş 

    } 

作品不错

相关问题