मेरे पास एक प्रश्न है कि मैं खंड से संवाद खंड में डेटा भेजने के लिए बंडल का उपयोग कर रहा हूं, लेकिन एक समस्या है जब मैं अपने खंड लेआउट में बटन पर क्लिक करता हूं तो यह डेटा को टुकड़े से प्राप्त करने में सफलता प्राप्त करता है लेकिन मेरे संवाद में इसे शून्य मान मिलता है, जब मैं डीबग मैंने पाया कि मेरा संवाद खंड दो बार चलता है ताकि मुझे शून्य मान क्यों मिल जाए। इस समस्या को हल करने के लिए कोई सुझाव, मेरी अंग्रेजी के लिए खेद है, आशा मेरे प्रश्न को समझ सकती है।

मेरे संवाद खंड में डेटा पास करने के लिए यह मेरा ऑनक्लिक है

 Button[i].setBackgroundColor(0xFF00FF00);
 Button[i].setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                               TextView test = (TextView)getView().findViewById(R.id.testproductname);
                                test.setText(pName);
                                String testproductname = test.getText().toString();

                                Bundle args = new Bundle();
                                args.putString("key", testproductname);
                                FragmentDialog newFragment = new FragmentDialog();
                                newFragment.setArguments(args);
                                newFragment.show(getActivity().getSupportFragmentManager(), "TAG");

                                showTheDialog();
                     }
             });
 }
protected void showTheDialog() {
    FragmentManager fm = getActivity().getSupportFragmentManager();
    FragmentDialog overlay = new FragmentDialog();
    overlay.show(fm, "FragmentDialog");

 }

FragmentDialog

   public class FragmentDialog extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = super.onCreateDialog(savedInstanceState);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        //dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.YELLOW));
        dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

        return dialog;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
            savedInstanceState) {
        View view = inflater.inflate(R.layout.prompt_quantity, container);

        // tab slider
        sectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());

        // Set up the ViewPager with the sections adapter.
        viewPager = (ViewPager) view.findViewById(R.id.modifierpager);
        viewPager.setAdapter(sectionsPagerAdapter);

        Bundle mArgs = getArguments();
        pName = mArgs.getString("key","asdasd");

        final TextView tpn = (TextView)getView().findViewById(R.id.gtestproductname);
        tpn.setText(pName);
}
0
Wei Ming Tang 7 मार्च 2017, 12:21
1
showTheDialog() क्या है? ऐसा लगता है कि आप इससे पहले ही newFragment.show को कॉल कर रहे हैं...
 – 
marmor
7 मार्च 2017, 12:31
धन्यवाद, मैं अपना प्रश्न अपडेट करता हूं, showThDialog() का उपयोग मेरे डायलॉगफ्रैगमेंट को संकेत देने के लिए किया जाता है
 – 
Wei Ming Tang
7 मार्च 2017, 12:34
1
यदि आप संवाद खंड को showTheDialog() से कॉल कर रहे हैं तो यह इसे फिर से शून्य मानों के साथ दिखाएगा और आप पिछली पंक्ति newFragment.show(getActivity().getSupportFragmentManager(), "TAG"); //here you are calling to show the fragment और showTheDialog(); //Are you showing the fragment again here? में संवाद दिखाने के लिए कॉल कर रहे हैं।
 – 
Sony
7 मार्च 2017, 12:35
एक बार में 2 डायलॉग दिखा रहे हैं?
 – 
Sony
7 मार्च 2017, 12:37
1
showTheDialog फ़ंक्शन कॉल पर टिप्पणी करने का प्रयास करें, और देखें कि क्या यह समस्या हल करता है
 – 
marmor
7 मार्च 2017, 12:38

1 उत्तर

सबसे बढ़िया उत्तर
  newFragment.show(getActivity().getSupportFragmentManager(), "TAG");

                            showTheDialog();

आपको शो को दो बार कॉल करने की आवश्यकता नहीं है, यह तर्क दो बार दृश्य खींचता है। इसलिए आपके पास विसंगति है। दूसरा हटा दें।

1
Remario 7 मार्च 2017, 12:40