Android Open Source - markj On Click Listener Receiver






From Project

Back to project page markj.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project markj listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.markjmind.mobile.api.android.controller;
// ww  w  .  j  a  v  a2s . c o m
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;

/**
 * start : 2013.11.17<br>
 * <br>
 * OnClick ????? ?? ??? ?? ?????<br>
 * 
 * @author ???
 *
 */
public class OnClickListenerReceiver implements OnClickListener{
  private Context context; 
  private Object receiver;
  private String methodName;
  private Object param;
   
  private OnClickListenerReceiver(){
    
  }
   
   public OnClickListenerReceiver(Context context){
     this.context = context;
   }
   public void setParam(Object param){
     this.param = param;
   }
  @Override
  public void onClick(View v) {
    invoke(receiver,methodName,v);
  }
  
   private void invoke(Object receiver, String methodName,View v){
     Class cls=receiver.getClass();
     try {
        if(param!=null){
          Class[] params = {View.class, param.getClass()};
          Method method = cls.getMethod(methodName, params);
          method.invoke(receiver, v, param);
        }else{
          Class[] params = {View.class};
          Method method = cls.getMethod(methodName, params);
          method.invoke(receiver, v);
        }
      } catch (IllegalArgumentException e) {
        throw new JwMapperException("\n["+receiver.getClass().getName()+"]method:"+methodName+", ???? ????? ?? ?????????.",e);
      } catch (IllegalAccessException e) {
        throw new JwMapperException("\n["+receiver.getClass().getName()+"]method:"+methodName+", ??????? ?? ?????.",e);
      } catch (InvocationTargetException e) {
        throw new JwMapperException("\n["+receiver.getClass().getName()+"]method:"+methodName+", ??? ????? Exception??? ????????.",e);
      }catch (NoSuchMethodException e) {
        throw new JwMapperException("\n["+receiver.getClass().getName()+"]method:"+methodName+", Field?? ???? OnClick ??? ????.",e);
      }
   }
   
   /**
    * ?? receiver ???????? ??? R_id_view?? Click???? ?????.
    * @param receiver ??? ??? ????? ???
    * @param methodName ???
    * @param R_id_view ?????? ???? view id
    */
  public void setOnClickListener(Object receiver, String methodName,int R_id_view, View parents){
    parents.findViewById(R_id_view).setOnClickListener(getOnClickListener(receiver,methodName));
  }
  
   /**
    * ?? receiver ???????? ??? R_id_view?? Click???? ?????.
    * @param receiver ??? ??? ????? ???
    * @param methodName ???
    * @param R_id_view ?????? ???? view id
   * @param activity ?? activity
   */
  public static void setOnClickListener(Object receiver, String methodName,int R_id_view, Activity activity){
    activity.findViewById(R_id_view).setOnClickListener(getOnClickListener(receiver,methodName));
  }
  
  /**
   * ?? receiver ???????? ??? view?? Click???? ?????.
   * @param receiver  ??? ??? ????? ???
   * @param methodName  ???
   * @param view ?????? ???? view
   */
  public void setOnClickListener(Object receiver, String methodName,View view){
    view.setOnClickListener(getOnClickListener(receiver,methodName));
  }
  
  /**
   * ?? receiver ???????? ??? OnClickListener???? ????.
   * @param receiver ??? ??? ????? ???
   * @param methodName ???
   * @return OnClickListener OnClickListener 
   */
  public static OnClickListener getOnClickListener(Object receiver, String methodName){
    OnClickListenerReceiver ocl = new OnClickListenerReceiver();
    ocl.receiver = receiver;
    ocl.methodName = methodName;
    return ocl;
   }
   
   /**
    * ?? receiver ???????? ??? R_id_view?? Click???? ?????.
    * @param receiver ??? ??? ????? ???
    * @param methodName ???
    * @param R_id_view ?????? ???? view id
    */
  public void setOnClickParamListener(Object receiver, String methodName,int R_id_view, View parents,Object param){
    parents.findViewById(R_id_view).setOnClickListener(getOnClickParamListener(receiver,methodName,param));
  }
  
   /**
    * ?? receiver ???????? ??? R_id_view?? Click???? ?????.
    * ??????? ???? ??.
    * @param receiver ??? ??? ????? ???
    * @param methodName ???
    * @param param
    * @param R_id_view ?????? ???? view id
    * @param activity ?? activity
   */
  public static void setOnClickParamListener(Object receiver, String methodName,int R_id_view, Activity activity,Object param){
    activity.findViewById(R_id_view).setOnClickListener(getOnClickParamListener(receiver,methodName,param));
  }
  
  /**
   * ?? receiver ???????? ??? view?? Click???? ?????.
   * ??????? ???? ??.
   * @param receiver  ??? ??? ????? ???
   * @param methodName  ???
   * @param param
   * @param view ?????? ???? view
   */
  public void setOnClickParamListener(Object receiver, String methodName,View view,Object param){
    view.setOnClickListener(getOnClickParamListener(receiver,methodName,param));
  }
  
  /**
   * ?? receiver ???????? ??? OnClickListener???? ????.
   * ??????? ???? ??.
   * @param receiver ??? ??? ????? ???
   * @param methodName ???
   * @param param
   * @return OnClickListener OnClickListener 
   */
  public static OnClickListener getOnClickParamListener(Object receiver, String methodName, Object param){
    OnClickListenerReceiver ocl = new OnClickListenerReceiver();
    ocl.setParam(param);
    ocl.receiver = receiver;
    ocl.methodName = methodName;
    return ocl;
   }
}




Java Source Code List

com.markjmind.mobile.api.android.controller.JwAsyncTask.java
com.markjmind.mobile.api.android.controller.JwMapperException.java
com.markjmind.mobile.api.android.controller.JwMemberMapper.java
com.markjmind.mobile.api.android.controller.JwStringID.java
com.markjmind.mobile.api.android.controller.JwViewController.java
com.markjmind.mobile.api.android.controller.JwViewerCache.java
com.markjmind.mobile.api.android.controller.JwViewer.java
com.markjmind.mobile.api.android.controller.Jwc.java
com.markjmind.mobile.api.android.controller.OnClickListenerReceiver.java
com.markjmind.mobile.api.android.controller.ViewerXmlMapper.java
com.markjmind.mobile.api.android.exception.JwErrorCode.java
com.markjmind.mobile.api.android.exception.JwException.java
com.markjmind.mobile.api.android.json.JSONMsgString.java
com.markjmind.mobile.api.android.json.JwJOSNTreeArray.java
com.markjmind.mobile.api.android.json.JwJSONReader.java
com.markjmind.mobile.api.android.ui.JwAnimation.java
com.markjmind.mobile.api.android.ui.JwGroup.java
com.markjmind.mobile.api.android.ui.JwMenu.java
com.markjmind.mobile.api.android.ui.JwOnGroupSelect.java
com.markjmind.mobile.api.android.ui.JwTabGroup.java
com.markjmind.mobile.api.android.ui.JwTouchGroupListener.java
com.markjmind.mobile.api.android.ui.JwTouchGroup.java
com.markjmind.mobile.api.android.ui.JwTouchMotionGroupLisener.java
com.markjmind.mobile.api.android.ui.JwTouchMotionGroup.java
com.markjmind.mobile.api.android.ui.drawgraph.GraphBoard.java
com.markjmind.mobile.api.android.ui.drawgraph.GraphSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.HBackLineSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.LineGraphSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.PieGraph.java
com.markjmind.mobile.api.android.ui.drawgraph.RectGraphSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.SimpleStyle.java
com.markjmind.mobile.api.android.ui.drawgraph.TextArraySkin.java
com.markjmind.mobile.api.android.ui.drawgraph.VBackLineSkin.java
com.markjmind.mobile.api.android.ui.graph.Arc.java
com.markjmind.mobile.api.android.ui.graph.BarElement.java
com.markjmind.mobile.api.android.ui.graph.BarLayout.java
com.markjmind.mobile.api.android.ui.graph.Bar.java
com.markjmind.mobile.api.android.ui.graph.IPieSkin.java
com.markjmind.mobile.api.android.ui.graph.LineLayout.java
com.markjmind.mobile.api.android.ui.graph.MeasureLayout.java
com.markjmind.mobile.api.android.ui.graph.PieArcRoundSkin.java
com.markjmind.mobile.api.android.ui.graph.PieLayout.java
com.markjmind.mobile.api.android.ui.graph.PiePercentSkin.java
com.markjmind.mobile.api.android.ui.view.JwBaseDropDown.java
com.markjmind.mobile.api.android.ui.view.JwDropDown.java
com.markjmind.mobile.api.android.ui.view.JwSlidingLayout.java
com.markjmind.mobile.api.android.ui.view.JwWheelView.java
com.markjmind.mobile.api.android.ui.view.StickerListener.java
com.markjmind.mobile.api.android.ui.view.StickerView.java
com.markjmind.mobile.api.android.ui.view.textview.JwTextViewAutoScale.java
com.markjmind.mobile.api.android.ui.view.textview.JwTextViewFonts.java
com.markjmind.mobile.api.android.ui.view.textview.JwTextViewWrapScale.java
com.markjmind.mobile.api.android.ui.wrapper.JwAlertDialog.java
com.markjmind.mobile.api.android.ui.wrapper.JwToast.java
com.markjmind.mobile.api.android.util.JwFile.java
com.markjmind.mobile.api.android.util.JwPreferenceList.java
com.markjmind.mobile.api.android.util.JwPreference.java
com.markjmind.mobile.api.android.util.JwSound.java
com.markjmind.mobile.api.android.util.JwTextUtils.java
com.markjmind.mobile.api.android.util.PhoneInfo.java
com.markjmind.mobile.api.android.util.WebConnection.java
com.markjmind.mobile.api.android.xml.JwDomHandler.java
com.markjmind.mobile.api.android.xml.JwDomLoader.java
com.markjmind.mobile.api.android.xml.JwEditElementHandler.java
com.markjmind.mobile.api.android.xml.JwXmlLoader.java
com.markjmind.mobile.api.android.xml.JwXmlResoure.java
com.markjmind.mobile.api.hub.ArrayJDhub.java
com.markjmind.mobile.api.hub.DBhub.java
com.markjmind.mobile.api.hub.JDhub.java
com.markjmind.mobile.api.hub.Loader.java
com.markjmind.mobile.api.hub.StoreList.java
com.markjmind.mobile.api.hub.Store.java