博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 教程实例系列
阅读量:4489 次
发布时间:2019-06-08

本文共 3219 字,大约阅读时间需要 10 分钟。

用户界面部分学起来还真是无处下手哇,总不能一个控件发一篇文吧,略有点费时间啊。。。这个难道不是边用边学才给力吗。。所以我打算从最实用的Button开始下手。

 

  先贴几个链接,好东西:

  android用户界面的详尽教程实例系列:

  

  android用户界面教程实例汇总:

  

 

  本文主要内容是Button,相关的链接:

  一个强大的学习贴:

  

  官方文档资料:

  

  

 

Button基本使用方法

  首先,添加Button控件到XML布局文件中。也可通过程序添加。

  在布局文件中设置按钮的一些属性,如位置,宽高,按钮上的字,颜色等。

  比较重要的是要给按钮一个id号,这是按钮唯一的名字。

  这样在程序中可以通过如下形式获得按钮:

  button = (Button)findViewById(R.id.buttonId);

 

处理按钮点击

  按钮点击有两种处理方法。

  第一种是通过onClick属性,通过这个属性设置处理点击事件的方法名,在Activity中实现这个方法。

  另一种方法是典型的事件监听机制的应用形式,下面详细说明这两种方法。

 

1.通过onClick属性设置处理方法

  在XML布局文件中设置Button的属性:

  android:onClick="yourMethodName"

  然后在该布局文件对应的Acitivity中实现该方法:

 

  /** Called when the user touches the button */  public void yourMethodName(View view)  {       // Do something in response to button click  }

 

  需要注意的是这个方法必须符合三个条件:

  1.public

  2.返回void

  3.只有一个参数View,这个View就是被点击的这个控件。

 

2.使用setOnClickListener添加监听器对象

  关于事件监听模式,参见

  

 

  可以写一个内部类,实现OnClickListener接口,在这个类中实现onClick方法,方法里面写在按钮点击时想做的具体工作。

  将这个内部类的对象传入按钮的setOnClickListener方法中,即完成监听器对象和按钮的绑定(在事件源Button上注册了事件监听器),这时候只要按钮被点击,那么监听器对象的onClick方法就会被调用。

  当然这里也不一定要自己写一个内部类出来,比如这个例子

 

  Button button = (Button) findViewById(R.id.button_send);  button.setOnClickListener(new View.OnClickListener() {      public void onClick(View v)    {          // Do something in response to button click      }  });

 

 

按钮基本操作实例

  奉上实例一个:

  XML布局文件

 

  Activity代码

package com.example.buttontest;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class ButtonActivity extends Activity {    private Button button01 = null;    private Button button02 = null;    @Override    public void onCreate(Bundle savedInstanceState)     {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_button);                button01 = (Button)findViewById(R.id.button_first);        button02 = (Button)findViewById(R.id.button_second);               //绑定事件源和监听器对象        button02.setOnClickListener(new MyButtonListener());    }    @Override    public boolean onCreateOptionsMenu(Menu menu)     {        getMenuInflater().inflate(R.menu.activity_button, menu);        return true;    }        //按钮1的点击事件    public void changeButtonColor(View view)    {        button01.setBackgroundColor(getResources().getColor(R.color.red));            }        //内部类,实现OnClickListener接口    //作为第二个按钮的监听器类    class MyButtonListener implements OnClickListener    {        public void onClick(View v)        {            button02.setBackgroundColor(getResources().getColor(R.color.blue));                    }                    }    }

 

  运行截图                       

  点击前:

 

 

 

  点击后:

 

 

 

  相关的资源文件中内容

  strings.xml

ButtonTest
Hello world!
Settings
ButtonActivity
ThisIsAButton
ThisIsAnotherButton

 

  colors.xml

#f00
#0f0
#00f
#000

 

 

转自:

转载于:https://www.cnblogs.com/YangBinChina/p/5178233.html

你可能感兴趣的文章
setting.xml配置详解
查看>>
window系统下调度数据库类型资源库中的kettle job
查看>>
10、小易记单词--2017网易春招
查看>>
monkey 命令详解
查看>>
Scrapy XPath语法
查看>>
图像预处理
查看>>
16个Web开发的IDE
查看>>
Java动态代理与Cglib库
查看>>
libevent源码深度剖析一
查看>>
SSH隧道技术简介
查看>>
PAT乙级1025
查看>>
找的好网站(macdow语法,扫描二维码,)
查看>>
浏览器插件开发遇到的问题
查看>>
EF Core 1.0 和 SQLServer 2008 分页的问题
查看>>
BZOJ1798: [Ahoi2009]Seq 维护序列seq
查看>>
PS--人物黄金色调
查看>>
开启ucosii的移植之旅
查看>>
推荐一款能写原创诗词的小程序
查看>>
Codeforces Round #496 (Div. 3) ABCDE1
查看>>
Bundle display name 与 Bundle name 的区别
查看>>