दिलचस्प पोस्ट
एक पोस्टग्रेज़ सरणी में डेटा का चयन करना php पर एक ही पृष्ठ jQuery अजाक्स गुजर मूल्य समय का उपयोग किए बिना समाप्त करने के लिए सभी गोरटिनों को कैसे इंतजार करना चाहिए? सो क्या है? System.ObjectDisposedException: ऑब्जेक्टकॉन्टेक्स्ट उदाहरण का निपटारा किया गया है और उन कार्यों के लिए अब उपयोग नहीं किया जा सकता जिन्हें एक कनेक्शन की आवश्यकता होती है एक तेज़ ऑपरेशन क्या है, पुन: मिलान / खोज या str.find? Asp.net में datatable कॉलम के योग की गणना कैसे करें? कौन सी बूस्ट सुविधाएं सी ++ 11 के साथ ओवरलैप करती हैं? अहस्ताक्षरित बनाम हस्ताक्षरित पूर्णांक के प्रदर्शन विस्तारित सूची दृश्य के 3 से अधिक स्तरों को कैसे प्रदर्शित किया जाए? क्या यह एक गैर-आभासी विधि को ओवरराइड करना संभव है? स्ट्रिंग से गैर-अंकों को फ़िल्टर करें Std :: नक्शा में कुंजी के रूप में char * का उपयोग करना टंकिनर विजेट में एक सबप्रोसेस का रीयलटाइम आउटपुट दिखाएं PHP simpleXML फाइल को कैसे स्वरूपित तरीके से सहेजना है? सी ++ RTTI व्यवहार्य उदाहरण

DialogFragment से मूल्य प्राप्त करें

मैं चाहता हूं कि DialogFragment को मेरे लिए एक मान वापस DialogFragment जाए जो कि प्रविष्टि में प्रवेश किया गया था जब खारिज किया गया था।

लेकिन मुझे यह काम करने का कोई तरीका नहीं मिल रहा है। मैं intent से मूल्य गुजर कर ऐसा कर सकता हूं, लेकिन वह वर्तमान गतिविधि की प्रगति को नष्ट कर देता है।

क्या intent से गुजरने के अलावा कोई रास्ता नहीं है जो मुझे मूल्य देगा?

 package com.example.myprojectname; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.text.InputType; import android.util.Log; import android.widget.EditText; public class QuantityDialogFragment extends DialogFragment implements OnClickListener { private EditText editQuantity; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { editQuantity = new EditText(getActivity()); editQuantity.setInputType(InputType.TYPE_CLASS_NUMBER); return new AlertDialog.Builder(getActivity()) .setTitle(R.string.app_name) .setMessage("Please Enter Quantity") .setPositiveButton("OK", this) .setNegativeButton("CANCEL", null) .setView(editQuantity) .create(); } @Override public void onClick(DialogInterface dialog, int position) { String value = editQuantity.getText().toString(); Log.d("Quantity: ", value); dialog.dismiss(); } } 

Solutions Collecting From Web of "DialogFragment से मूल्य प्राप्त करें"

यह मानते हुए कि आप कॉलिंग गतिविधि के परिणाम का आकलन करना चाहते हैं 🙂 इस कोड स्निपेट का प्रयास करें:

 public class QuantityDialogFragment extends DialogFragment implements OnClickListener { private EditText editQuantity; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { editQuantity = new EditText(getActivity()); editQuantity.setInputType(InputType.TYPE_CLASS_NUMBER); return new AlertDialog.Builder(getActivity()).setTitle(R.string.app_name).setMessage("Please Enter Quantity") .setPositiveButton("OK", this).setNegativeButton("CANCEL", null).setView(editQuantity).create(); } @Override public void onClick(DialogInterface dialog, int position) { String value = editQuantity.getText().toString(); Log.d("Quantity: ", value); MainActivity callingActivity = (MainActivity) getActivity(); callingActivity.onUserSelectValue(value); dialog.dismiss(); } } 

और आपकी गतिविधि में जोड़ें:

 public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); QuantityDialogFragment dialog = new QuantityDialogFragment(); dialog.show(getSupportFragmentManager(), "Dialog"); } /** * callback method from QuantityDialogFragment, returning the value of user * input. * * @param selectedValue */ public void onUserSelectValue(String selectedValue) { // TODO add your implementation. } } 

इस विचार को थोड़ा आगे लेते हुए, मैंने संवाद के अंदर एक श्रोता इंटरफ़ेस बनाया और इसे मुख्य गतिविधि में कार्यान्वित किया।

 public interface OnDialogResultListener { public abstract void onPositiveResult(String value); public abstract void onNegativeResult(); } public void setOnDialogResultListener(OnDialogResultListener listener) { this.onDialogResultListener = listener; } 

एक ओवरराइड में onCancel(DialogInterface) और onPositiveResult(String) कॉल करें, जहां आप अपने संवाद को मान वापस करने के लिए चाहते हैं।

नोट: onPositiveResult() या डायलॉग विंडो को कॉल करने के बाद अपने संवाद को dismiss() करने के लिए मत भूलें

फिर अपने मुख्य गतिविधि के अंदर आप संवाद के लिए एक श्रोता बना सकते हैं, जैसे:

 QuantityDialogFragment dialog = new QuantityDialogFragment(); dialog.setOnDialogResultListener(new QuantityDialogFragment.OnDialogResultListener() { @Override public void onPositiveResult(String value) { //Do something... } @Override public void onNegativeResult() { //Do something... } }); 

इससे आपके संवाद को बाद में पुन: उपयोग करना आसान होगा।