android - गतिविधि पर बुलाए टुकड़े के अंदर क्लिक करें




android-fragments (4)

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

मैं इस समय एक टुकड़े में सामान को encapsulating हूँ और एक समस्या में भागो जो Google के लिए मुश्किल है। मेरे टुकड़े के अंदर ऑनक्लिक विशेषताओं वाले कुछ बटन हैं लेकिन उन्हें गतिविधि पर बुलाया जाता है बल्कि एंड्रॉइड सिस्टम से टुकड़ा - यह थोड़ा बेकार है। क्या विखंडन पर कॉल करने के लिए क्लिक पर प्रतिबिंब सामग्री रखने का कोई तरीका है? इस समय मुझे देखने का एकमात्र समाधान xml में क्लिक करने और कोड के माध्यम से खंड के अंदर क्लिक-श्रोताओं को सेट करने के लिए उपयोग नहीं करना है।


इससे मेरा काम बनता है

आयात जोड़ें:

    import android.view.View.OnClickListener;

Fragment.java

    ...
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

       rootView = (ViewGroup) inflater.inflate(R.layout.fragment, container, false);

       Button mButton = (Button) rootView.findViewById(R.id.button);
       mButton.setOnClickListener(new OnClickListener() {
          public void onClick(View v) {

          }
       });
       return rootView;
    }

मैंने कुछ googlers @ # adl2011 से बात की - वे समस्या को पहचानते हैं और शायद भविष्य में इसका एक फिक्स होगा। तब तक - किसी का उपयोग करना चाहिए .setOn Fragment में क्लिक करें।


मुद्दा:

1. एक्सएमएल ऑनक्लिक विशेषता में गतिविधि की सार्वजनिक विधि कॉल होगी।

2. फ्रैगमेंट की सार्वजनिक विधि को नहीं बुलाया जाता है।

3. फ्रैगमेंट पुन: प्रयोज्यता।

उपाय:

फ्रैगमेंट के लेआउट में इसे व्यू में जोड़ें।

android:onClick="onFragmentViewClick"

प्रत्येक गतिविधि में टुकड़ा संबंधित हो सकता है ..

public void onFragmentViewClick(View v) {
    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.container);
    if (fragment != null && fragment.isVisible()) {
        if (fragment instanceof SomeFragment) {
            ((SomeFragment) fragment).onViewClicked(v);
        }
    }
}

टुकड़े में इस विधि शामिल हैं ..

public void onViewClicked(View v) {
    switch (v.getId()) {
        case R.id.view_id:
            Log.e("onViewClicked", "yehhh!!");
            break;
    }
}




android-fragments