Java,Android,窥探组合的用法。AndroidUI组合设计模式,Java组合设计模式
16lz
2021-01-24
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{}
更多相关文章
- Android(安卓)PupopWindow 内的按钮事件处理
- Android(安卓)获取动态权限时候用户选择不再提示后无法获取权限
- Android(安卓)alertdialog的按钮点击后不消失
- Android(安卓)studio 点击按钮跳转到新的Activity
- Android(安卓)Studio中Run按钮app的module显示红叉
- android LayoutParams 简单说明 理解 示例
- Android工程导入时常见的错误解决方法
- 曾经的笔记——android的学习笔记(布局和电话、短信权限)
- Android个人开发笔记