मेरे पास एक टुकड़ा है जो उपयोगकर्ता इनपुट (एक स्ट्रिंग और एक पूर्णांक) प्राप्त करने के लिए Dialogfragment
खोलता है। मैं इन दो चीजों को वापस टुकड़े में कैसे भेजूं? मैं बटन क्लिक करने के बाद डेटा भेजने के लिए की जरूरत है और getDialog().dismiss()
डायलॉग फ्रैगमेंट से डेटा को फ्रैगमेंट में कैसे भेजा जाए?
यहाँ से पहले टुकड़ा है कि डेटा के लिए भेजा जाना चाहिए
public class DatePickerFragment extends DialogFragment {
String Month;
int Year;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().setTitle(getString(R.string.Date_Picker));
View v = inflater.inflate(R.layout.date_picker_dialog, container, false);
Spinner months = (Spinner) v.findViewById(R.id.months_spinner);
ArrayAdapter<CharSequence> monthadapter = ArrayAdapter.createFromResource(getActivity(),
R.array.Months, R.layout.picker_row);
months.setAdapter(monthadapter);
months.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int monthplace, long id) {
Month = Integer.toString(monthplace);
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
Spinner years = (Spinner) v.findViewById(R.id.years_spinner);
ArrayAdapter<CharSequence> yearadapter = ArrayAdapter.createFromResource(getActivity(),
R.array.Years, R.layout.picker_row);
years.setAdapter(yearadapter);
years.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int yearplace, long id) {
if (yearplace == 0){
Year = 2012;
}if (yearplace == 1){
Year = 2013;
}if (yearplace == 2){
Year = 2014;
}
}
public void onNothingSelected(AdapterView<?> parent) {}
});
Button button = (Button) v.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
getDialog().dismiss();
}
});
return v;
}
}
:
public class CalendarFragment extends Fragment {
int Year;
String Month;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int position = getArguments().getInt("position");
String[] categories = getResources().getStringArray(R.array.categories);
getActivity().getActionBar().setTitle(categories[position]);
View v = inflater.inflate(R.layout.calendar_fragment_layout, container, false);
final Calendar c = Calendar.getInstance();
SimpleDateFormat month_date = new SimpleDateFormat("MMMMMMMMM");
Month = month_date.format(c.getTime());
Year = c.get(Calendar.YEAR);
Button button = (Button) v.findViewById(R.id.button);
button.setText(Month + " "+ Year);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new DatePickerFragment().show(getFragmentManager(), "MyProgressDialog");
}
});
return v;
}
}
यहाँ मेरी DialogFragment है
इसलिए जब उपयोगकर्ता Dialogfragment
में कोई दिनांक चुनता है, तो उसे महीने और वर्ष वापस करना होगा।
फिर, बटन पर टेक्स्ट उपयोगकर्ता द्वारा निर्दिष्ट महीने और वर्ष में बदलना चाहिए।
तुम सिर्फ बजाय इंटरफेस के माध्यम से गुजर का टुकड़ा अंदर विधि को परिभाषित कर सकता है? – splinter123
आप कर सकते थे, लेकिन फिर संवाद को उस खंड के प्रकार को जानना होगा जिसने इसे बुलाया था। इससे संवाद केवल एक विशिष्ट टुकड़े से उपयोग योग्य होगा। इंटरफ़ेस के माध्यम से वापस कॉल करना एक बहुत अधिक लचीला दृष्टिकोण है। –
मुझे यह जवाब पसंद आया। न केवल यह स्पष्ट रूप से मेरी मदद करता है, लेकिन आपने कोड के ब्लॉक को लिखने और चरणों को समझाए बिना किया। +1 – AdamMc331