मेरे पास एक प्रश्न है कि मैं खंड से संवाद खंड में डेटा भेजने के लिए बंडल का उपयोग कर रहा हूं, लेकिन एक समस्या है जब मैं अपने खंड लेआउट में बटन पर क्लिक करता हूं तो यह डेटा को टुकड़े से प्राप्त करने में सफलता प्राप्त करता है लेकिन मेरे संवाद में इसे शून्य मान मिलता है, जब मैं डीबग मैंने पाया कि मेरा संवाद खंड दो बार चलता है ताकि मुझे शून्य मान क्यों मिल जाए। इस समस्या को हल करने के लिए कोई सुझाव, मेरी अंग्रेजी के लिए खेद है, आशा मेरे प्रश्न को समझ सकती है।
मेरे संवाद खंड में डेटा पास करने के लिए यह मेरा ऑनक्लिक है
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);
}
1 उत्तर
newFragment.show(getActivity().getSupportFragmentManager(), "TAG");
showTheDialog();
आपको शो को दो बार कॉल करने की आवश्यकता नहीं है, यह तर्क दो बार दृश्य खींचता है। इसलिए आपके पास विसंगति है। दूसरा हटा दें।
संबंधित सवाल
नए सवाल
android
एंड्रॉइड Google का मोबाइल ऑपरेटिंग सिस्टम है, जिसका उपयोग प्रोग्रामिंग या डिजिटल डिवाइस (स्मार्टफोन, टैबलेट, ऑटोमोबाइल्स, टीवी, वियर, ग्लास, IoT) को विकसित करने के लिए किया जाता है। एंड्रॉइड से संबंधित विषयों के लिए, एंड्रॉइड-विशिष्ट टैग जैसे कि एंड्रॉइड-इरादे, एंड्रॉइड-गतिविधि, एंड्रॉइड-एडॉप्टर आदि का उपयोग करें। विकास या प्रोग्रामिंग के अलावा अन्य प्रश्नों के लिए, लेकिन एंड्रॉइड फ्रेमवर्क से संबंधित हैं, इस लिंक का उपयोग करें: https: // android.stackexchange.com।
showTheDialog()
क्या है? ऐसा लगता है कि आप इससे पहले हीnewFragment.show
को कॉल कर रहे हैं...showTheDialog()
से कॉल कर रहे हैं तो यह इसे फिर से शून्य मानों के साथ दिखाएगा और आप पिछली पंक्तिnewFragment.show(getActivity().getSupportFragmentManager(), "TAG"); //here you are calling to show the fragment
औरshowTheDialog(); //Are you showing the fragment again here?
में संवाद दिखाने के लिए कॉल कर रहे हैं।showTheDialog
फ़ंक्शन कॉल पर टिप्पणी करने का प्रयास करें, और देखें कि क्या यह समस्या हल करता है