zoukankan      html  css  js  c++  java
  • Android中自定义veiw使用Java中的回调方法

    //------------------MainActivity----中----------------------------------

    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Toast;

    public class MainActivity extends Activity {

        private MyButton myButton;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //找到控件
            myButton = (MyButton) findViewById(R.id.bt_mybutton);
            myButton.setonButtonClickListener(new OnButtonClickListener() {
                
                @Override
                public void OnButtonClick() {
                Toast.makeText(MainActivity.this, "在Activity中点击了Button", 0).show();
                    
                }
            });
            
        }

    //---------------------布局文件中-----自定义button--------------

    <com.bw.huidiao.MyButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/bt_mybutton"
            android:text="点击回调"/>

    //------------------自定义button  -  创建一个类继承button实现3个又参构造方法----------------------------------------

    package com.bw.huidiao;

    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.Button;
    import android.widget.Toast;
    import android.view.View;
    import android.view.View.OnClickListener;

    public class MyButton extends Button implements OnClickListener{
        private Context context;

        public MyButton(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
            // TODO Auto-generated constructor stub
        }
        public MyButton(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
        }

        public MyButton(Context context, AttributeSet attrs) {
            super(context, attrs);
            this.context=context;
            setOnClickListener(this);
            
        }
        @Override
        public void onClick(View v) {
            //Toast.makeText(context, "在MyButton中点击了Button", 0).show();
            listener.OnButtonClick();
        }
        private OnButtonClickListener listener;
        //接口回调
        //定义接口
        public interface OnButtonClickListener{
            public void OnButtonClick();
        }
        //暴露给外界一个方法,方便调用
    public void setonButtonClickListener(OnButtonClickListener listener){
        this.listener=listener;
    }
        
        

    }

  • 相关阅读:
    我所理解的MVC
    关于开发文化的思考
    使用纯C语言开始win32 sdk编程
    谈谈编译原理和其在WEB开发中的应用1
    最简单的win32程序(c语言实现)
    关于Javascript的一些心得与记忆
    Cvv.WebUtility 我的MVC框架介绍
    发现了个不错的图片网站
    轻轻松松做开发--目前网站开发的流行原素
    我的模板分析引擎类PHP的.net开发方法标签设计篇
  • 原文地址:https://www.cnblogs.com/changyiqiang/p/5839576.html
Copyright © 2011-2022 走看看