Android学习-常见的UI控件 监听按钮的点击事件

来源:互联网 发布:dracut命令安装linux 编辑:程序博客网 时间:2024/05/16 08:54

onClick事件
1.Button和ImageButton都有一个onClick事件
通过自身的setOnClickListener(OnClickListener)方法添加点击事件
2.所有的控件都有一个onClick事件,不仅仅Button和ImageButton有
3.通过点击事件的监听可以实现点击按钮之后要发生什么动作

监听事件实现的几种写法
1.匿名内部类的实现
2.独立类的实现
3.实现接口的方式来实现

匿名内部类实现

public class FirstActivity extends AppCompatActivity {    private static final String TAG = "FirstActivity";    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //将布局xml文件引入到activity中来        setContentView(R.layout.first_layout);        /*        * 1.初始化当前所需要控件,如何初始化一个控件?        * findViewById——返回的是个View对象        * findViewById——通过R文件中的Id来找View        *        * 2.设置Button的监听器,通过监听器实现我们点击Button要操作的事情        * */        Button button = (Button) findViewById(R.id.button);        /*        * 1.监听事件通过第一种方式实现(匿名内部类)        * */        button.setOnClickListener(new View.OnClickListener() {            public void onClick(View view) {                Toast.makeText(FirstActivity.this,"点击了button",Toast.LENGTH_SHORT).show();            }        });    }}

独立类的实现
这种方式可以使得所有继承了独立类的button被点击了以后,实现相同的操作,例如改变button的透明度,只要加一句super.onClick(view);即可

public class FirstActivity extends AppCompatActivity {    private Button bt1;    private Button bt2;    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //将布局xml文件引入到activity中来        setContentView(R.layout.first_layout);        bt1 = (Button)findViewById(R.id.button);        bt2 =(Button)findViewById(R.id.button2);        //匿名内部类写法       /* bt1.setOnClickListener(new View.OnClickListener() {            public void onClick(View view) {                Toast.makeText(FirstActivity.this,"button1被点击了",Toast.LENGTH_SHORT).show();            }        });*/        //点击事件外部类的写法和作用        bt1.setOnClickListener(new MyOnclickListener(){            public void onClick(View view){                //调用父类的onClick                super.onClick(view);                Toast.makeText(FirstActivity.this,"button1被点击了",Toast.LENGTH_SHORT).show();            }        });        bt2.setOnClickListener(new MyOnclickListener(){            public void onClick(View view){                //调用父类的onClick                super.onClick(view);                Toast.makeText(FirstActivity.this,"button2被点击了",Toast.LENGTH_SHORT).show();            }        });    }}/**  OnclickListener是一个接口* */class MyOnclickListener implements View.OnClickListener{    public void onClick(View view) {        //让所有使用当前外部类的点击事件实现同一个同坐,改变button的透明度        view.setAlpha(0.5f);        System.out.println("button被点击了");    }}

实现接口的方式来实现

public class FirstActivity extends AppCompatActivity implements View.OnClickListener{    private ImageButton ibtu;    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //将布局xml文件引入到activity中来        setContentView(R.layout.first_layout);        ibtu = (ImageButton)findViewById(R.id.imageButton);        ibtu.setOnClickListener(this);    }    public void onClick(View view) {        Log.d("FirstActivity","onClick: ");    }}
原创粉丝点击