android - टुकड़े के अंदर टोस्ट का प्रयोग करें




android-fragments android-activity (7)

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

Fragment का स्रोत यहां दिया गया है:

    public class FrgTimes extends Fragment
    {
        ScrollView sv;
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) 
        {
            if (container == null) { return null; }

            sv = (ScrollView)inflater.inflate(R.layout.frg_times, container, false);

            btnTime1.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

            //******  HERE's the PROBLEM  ********
            Toast.makeText(<The Activity>, "Please long press the key", Toast.LENGTH_LONG );

            }});

            return sv;
        }

और यह वही है जो मैंने कोशिश की है।

Toast.makeText( getActivity()  , ...
Toast.makeText( getView().getContext()  , ...
Toast.makeText( getActivity().getApplicationContext()  , ...
Toast.makeText( sv.getContext()  , ...
Toast.makeText( sv.getRootView().getContext()  , ...

डीबग में मैं देख सकता हूं कि ये सभी कोड बिना किसी अपवाद के चलते हैं लेकिन कोई TOAST प्रदर्शित नहीं किया जा रहा है।


user2564789 ने यह सही कहा
लेकिन आप इसे getActivity() के स्थान पर भी इस्तेमाल कर सकते हैं
जो आपके टोस्ट को इस तरह दिखता है


     Toast.makeText(this,"Message",Toast.LENGTH_SHORT).show();
    


आप Toast पर show() को कॉल नहीं कर रहे हैं जिसे आप makeText() साथ बना रहे हैं।


एंड्रॉइड खंड के अंदर टोस्ट को कॉल करते समय:

1. Activity mActivity=this.getActivity();  

2. Toast.makeText(mActivity,"Text you want to display",Toast.LENGTH_SHORT).show();

यह मेरे लिए काम करता है।


खंड में टोस्ट बनाते समय निम्नानुसार करें:

Toast.makeText(getActivity(),"Message", Toast.LENGTH_SHORT).show();

जब कक्षा खंडित हो रही है तो getActivity () का उपयोग करना आवश्यक है क्योंकि टुकड़ा गतिविधि का एक उप-वर्ग है।

Cheerse


टुकड़े के अंदर एक टोस्ट बनाना

 Toast.makeText(getActivity(), "Your Text Here!", Toast.LENGTH_SHORT).show();

या

    Activity activityObj = this.getActivity();

    Toast.makeText(activityObj, "Your Text Here!", Toast.LENGTH_SHORT).show();

या

Toast.makeText(this, "Your Text Here!", Toast.LENGTH_SHORT).show();

मेरी समस्या के साथ अन्य लोगों की सहायता के लिए, फ्रैगमेंट के अंदर उपयोग टोस्ट का पूरा जवाब है:

Activity activity = getActivity();

@Override
public void onClick(View arg0) {

    Toast.makeText(activity,"Text!",Toast.LENGTH_SHORT).show();
}

        public void onClick(View v) {
            Context context = v.getContext();
            CharSequence text = "Message";
            int duration = Toast.LENGTH_SHORT;
            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
        }




toast