package com.panda.android.pattern;/**测试类*/public class Client {public static void main(String args[]){//新建线性布局LinearLayout linearLayout = new LinearLayout();//新建按钮Button btn = new Button();btn.setText("我是一个按钮.啦啦啦");//添加一个按钮到线性布局中linearLayout.addView(btn);TextView tv=new TextView();tv.setText("我是一个显示框.啦啦啦");//添加一个显示框到线性布局中linearLayout.addView(tv);System.out.println("线性布局中子视图一共有:"+linearLayout.getChildSize()+"个");//从现行布局中移除一个按钮linearLayout.removeView(btn);System.out.println("线性布局中子视图一共有:"+linearLayout.getChildSize()+"个");//为按钮设置回调监听。btn.setOnClickListener(new OnClickListener() {//回调方法@Overridepublic void onClick(View view) {view.printText();}});//为显示框设置回调监听tv.setOnClickListener(new OnClickListener() {//回调方法@Overridepublic void onClick(View view) {view.printText();}});//模拟触发点击按钮btn.TouchView();//模拟触发点击显示框tv.TouchView();}}

package com.panda.android.pattern;/*** * 按钮点击事件的接口 * @author pdan * @da2016年4月25日 */public interface OnClickListener {public void onClick(View view);}

package com.panda.android.pattern;/*** * 模拟Android的一套视图机制。留给大家慢慢体会。 * 自己喜欢android,喜欢里面这些设计模式。 * 有问题的请教点一下在此留下qq号了: 1162224940 * @author pdan * @da2016年4月24日 */public class View   {/**为视图保存文本*/private String text;/**按钮监听器**/private OnClickListener listener;/**为视图设置文本*/public void setText(String text){this.text=text;}/**打印view上的文本*/public void printText(){System.out.println("view上的文本是:"+text);}/**设置视图监听器*/public void setOnClickListener(OnClickListener listener){this.listener=listener;}/**模拟点击事件*/public void TouchView(){this.listener.onClick(this);}}

package com.panda.android.pattern;import java.util.ArrayList;/**视图容器*/public class ViewGroup extends View{/**存储按钮的集合*/ ArrayList<View> mChildren=new ArrayList<View>();  /*** 添加子视图    */    public void addView(View child) {    mChildren.add(child);    }    /** * 移除子视图    */    public void removeView(View view) {    mChildren.remove(view);    }        /**    * 得到某个下标的子视图   */    public View getChildAt(int index) {            return mChildren.get(index);    }        /**得到一共有多少个子视图*/    public int getChildSize(){    return mChildren.size();    }    }


package com.panda.android.pattern; /**这是一个线性布局*/public class LinearLayout extends ViewGroup {}




package com.panda.android.pattern;/**按钮*/public class Button extends View{}


package com.panda.android.pattern;public class TextView extends View{}


更多相关文章

  1. Android(安卓)PupopWindow 内的按钮事件处理
  2. Android(安卓)获取动态权限时候用户选择不再提示后无法获取权限
  3. Android(安卓)alertdialog的按钮点击后不消失
  4. Android(安卓)studio 点击按钮跳转到新的Activity
  5. Android(安卓)Studio中Run按钮app的module显示红叉
  6. android LayoutParams 简单说明 理解 示例
  7. Android工程导入时常见的错误解决方法
  8. 曾经的笔记——android的学习笔记(布局和电话、短信权限)
  9. Android个人开发笔记

随机推荐

  1. Android(安卓)强引用、软引用、弱引用、
  2. android应用框架搭建------BaseActivity
  3. Android(安卓)事件分发机制总结篇
  4. "android sdk Content Loader's has enco
  5. Andrid中的plurals
  6. Android中使用Intent进行窗体切换,并且传
  7. android 之通话录音
  8. android sqlite3命令
  9. 使用自定义的Activity栈来管理android的A
  10. Android(安卓)intent.setFlags方法中的参