How to handle button clicks using the XML onClick within Fragments

前端 未结 18 1765
旧时难觅i
旧时难觅i 2020-11-22 01:41

Pre-Honeycomb (Android 3), each Activity was registered to handle button clicks via the onClick tag in a Layout\'s XML:

android:onClick=\"m         


        
18条回答
  •  日久生厌
    2020-11-22 02:07

    You could just do this:

    Activity:

    Fragment someFragment;    
    
    //...onCreate etc instantiating your fragments
    
    public void myClickMethod(View v) {
        someFragment.myClickMethod(v);
    }
    

    Fragment:

    public void myClickMethod(View v) {
        switch(v.getId()) {
            // Just like you were doing
        }
    }    
    

    In response to @Ameen who wanted less coupling so Fragments are reuseable

    Interface:

    public interface XmlClickable {
        void myClickMethod(View v);
    }
    

    Activity:

    XmlClickable someFragment;    
    
    //...onCreate, etc. instantiating your fragments casting to your interface.
    
    public void myClickMethod(View v) {
        someFragment.myClickMethod(v);
    }
    

    Fragment:

    public class SomeFragment implements XmlClickable {
    
    //...onCreateView, etc.
    
    @Override
    public void myClickMethod(View v) {
        switch(v.getId()){
            // Just like you were doing
        }
    }    
    

提交回复
热议问题