Button 详解

知识点:

1、输入事件大纲(事件监听、事件处理、触摸模式、处理焦点)。
2、控件都可看做View。响应事件是基于view的。
3、事件监听(无返回类型、有些会返回boolean类型)(onclick()、onLongClick()、onFocusChange()、onKey()、onTouch()、onCreateContextMenu())
4、事件处理(boolean类型返回true:当前控件拦截该事件自己处理 fales:自己不处理,交给父控件处理事件的冒泡机制:分发机制从高级到低级,相应机制从低级到高级)

属性:

Button(按钮)继承自TextView,在Android开发中,Button是常用的控件,用起来也很简单,你可以在界面xml描述文档中定义,也可以在程序中创建后加入到界面中,其效果都是一样的。不过最好是在xml文档中定义,因为一旦界面要改变是话,直接修改一下xml就行了,不用修改Java程序,并且在xml中定义层次分明,一目了然。

Button 支持的 XML 属性及相关方法
XML 属性相关方法说明
android:clickablesetClickable(boolean clickable)设置是否允许点击。
clickable=true:允许点击
clickable=false:禁止点击
android:backgroundsetBackgroundResource(int resid)通过资源文件设置背景色。
resid:资源xml文件ID
按钮默认背景为android.R.drawable.btn_default
android:textsetText(CharSequence text)设置文字
android:textColorsetTextColor(int color)设置文字颜色
android:onClicksetOnClickListener(OnClickListener l)设置点击事件


响应:

Button{三种相应方法:1)匿名内部类2)实现借口3)定义xml文件}

     (1)第一种绑定事件方法 匿名内部类
 button1 = (Button) findViewById(R.id.button1);
 button1.setOnClickListener(new OnClickListener() {
       @Override
       public void onClick(View arg0) {
           // TODO Auto-generated method stub
           Toast.makeText(MainActivity.this, "button", 1).show();
         }
     });
  (2)第二种绑定监听的方法 implement OnClickListener,实现onclick方法
    
button2 = (Button) this.findViewById(R.id.button2);
button2.setOnClickListener(this);



@Override
public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.button2:
            Toast.makeText(MainActivity.this, "button2", 1).show();
            break;
}

  (3) 第三种相应按钮的点击事件 定义xml文件
     
<Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="sendMassage"
    android:text="xml定义响应按钮" />
public void sendMassage(View view) {
    Toast.makeText(MainActivity.this, "相应xml文件中定义的事件", 1).show();
}

    (4)定义 onClickListener接口

private OnClickListener listener = new OnClickListener(){
  @Override
  public void onClick(View arg0) {
   // TODO Auto-generated method stub
    switch(arg0.getId()){
        case R.id.bt_Demo:
        //响应Clicked事件
        //......
             break;
         default:
            break;
     }
  }
Button bt_Demo = (Button)findViewById(R.id.bt_Demo);
 bt_Demo.setOnClickListener(listener);

注意事项:

1.Button的setOnClickListener优先级比xml中android:onClick高,如果同时设置点击事件,只有setOnClickListener有效。
2.能用TextView就尽量不要用Button,感觉TextView灵活性更高。(纯属个人意见)

属性大全:

android:autoLink   setAutoLinkMask(int)控制链接网址和电子邮件地址等是否自动发现并转换为可点击的链接。
android:autoText setKeyListener(KeyListener)如果设置,指定该TextView文本输入法和自动纠正一些常见的拼写错误
android:bufferType setText(CharSequence TextView.BufferType)确定最低类型getText()将返回。
android:editorExtras setInputExtras(int)引用一个< input-extras > XML资源包含额外的数据提供一个输入方法,这是私人的实现输入法。
android:ellipsize setEllipsize(TextUtils.TruncateAt)如果设置,导致单词以上的观点是碎ellipsized宽,而不是在中间。
android:ems setEms(int)使TextView正是这许多ems宽。 
android:freezesText setFreezesText(布尔)如果设置文本视图将包含当前完成文本内的冷冻冰柱除了元数据,比如当前光标位置。
android:重力setGravity(int)指定如何对齐文本视图的x和y轴小于文本时的观点。android:高度setHeight(int)使TextView正是这许多像素高。
android:提示setHint(int)时所显示的提示文本的文本是空的。
android:imeActionId setImeActionLabel(CharSequence int)为EditorInfo提供一个值。 actionId时使用一个输入连接到文本视图方法。
android:imeActionLabel setImeActionLabel(CharSequence int)为EditorInfo提供一个值。 actionLabel时使用一个输入连接到文本视图方法。
android:imeOptions setImeOptions(int)附加功能您可以启用一个输入法与一个编辑器来提高与应用程序的集成。
android:includeFontPadding setIncludeFontPadding(布尔)留下足够的字体就是和流畅的空间而不是使用严格字体上升和下降。 
android:inputMethod setKeyListener(KeyListener)如果设置,指定该TextView应该使用指定的输入方法(指定完全限定类名)。 
android:inputType setRawInputType(int)被放置在一个文本字段的数据类型,用来帮助一个输入法决定如何让用户输入文本。
android:lineSpacingExtra setLineSpacing(浮子,浮子)额外间距行文本。 
android:lineSpacingMultiplier setLineSpacing(浮子,浮子)额外间距行文本,乘数效应。
android:行setLines(int)使TextView正是这许多行高。 
android:linksClickable setLinksClickable(布尔)如果设置为false,阻碍运动方法将运动的联系方法即使autoLink原因被发现的链接。 
android:marqueeRepeatLimit setMarqueeRepeatLimit(int)字幕动画重复的次数。 
android:maxEms setMaxEms(int)使TextView最多这许多ems宽。 
android:maxHeight setMaxHeight(int)使TextView最多这许多像素高。 
android:最大长度setFilters(InputFilter)设置一个过滤器来限制输入的文本长度到指定的号码。
android:maxLines setMaxLines最多(int)使TextView被这麽多行高。 
android:maxWidth setMaxWidth最多(int)使TextView被这麽多像素宽。 
android:minEms setMinEms(int)使TextView至少这许多ems宽。 
android:minHeight setMinHeight(int)使TextView至少这许多像素高。 
android:minLines setMinLines(int)使TextView至少这许多行高。 
android:minWidth setMinWidth(int)使TextView至少这许多像素宽。 
android:数字setKeyListener(KeyListener)如果设置,指定该TextView数字输入法。 
android:密码setTransformationMethod(TransformationMethod)字段的字符是否显示为密码点,而不是自己。 
android:phoneNumber setKeyListener(KeyListener)如果设置,指定该TextView有电话号码的输入方法。 
android:privateImeOptions setPrivateImeOptions(String)添加内容类型描述提供输入方法在文本视图,这是私人的实现输入法。 
android:scrollHorizontally setHorizontallyScrolling(布尔)文本是否允许更广泛的比视图(因此可以水平滚动)。 
android:selectAllOnFocus setSelectAllOnFocus(布尔)如果文本是可选择的,选择它当视图所需要的关注,而不是将光标移动到开始或结束。
android:shadowColor setShadowLayer(浮子,浮子,浮子,int)放置一个指定颜色的阴影背后的文本。 
android:shadowDx setShadowLayer(浮动,浮动,浮动,int)水平偏移的影子。 
android:shadowDy setShadowLayer(浮子,浮子,浮子,int)垂直偏移量的影子。 
android:shadowRadius setShadowLayer(浮子,浮子,浮子,int)半径的影子。 
android:单行模式setTransformationMethod(TransformationMethod)限制了文本一行水平滚动,而不是让它包装到多个行,并提出重点而不是按enter键时插入一个新行。
android:文本setText(CharSequence TextView.BufferType)文本显示。 
android:textAppearance基本文本颜色,字体,大小和风格。 
android:textColor setTextColor(int)文本颜色。 
android:textColorHighlight setHighlightColor(int)的颜色选择突出显示的文本。 
android:textColorHint setHintTextColor(int)提示文本的颜色。 
android:textColorLink setLinkTextColor(int)链接的文本颜色。 
android:textIsSelectable isTextSelectable()表明的内容不可编辑的文本可以选择。 
android:textScaleX setTextScaleX(浮动)设置文本的水平扩展因素。 
android:textSize setTextSize(int,浮动)大小的文本。 
android:textStyle setTypeface(字体)风格(粗体、斜体、bolditalic)文本。 
android:字体setTypeface(字体)字体(正常、无衬线、等宽字体)的文本。
android:宽度setWidth(int)使TextView正是这许多像素宽。
android:capitalize setKeyListener(KeyListener)如果设置,指定该TextView文本输入法,应该自动利用用户类型。
android:drawableRight setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)绘制的是右边的文本。
android:drawableTop setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)上面的得出可拉的文本。
android:可编辑如果设置,指定该TextView输入法。
android:cursorVisible setCursorVisible(布尔)使得光标(默认)可见或不可见。
android:数字setKeyListener(KeyListener)如果设置,指定该TextView数字输入法,这些特定的字符,它将接受的。
android:drawableBottom setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)可拉的得出以下文本。
android:drawableLeft setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)绘制的是左边的文本。
android:drawablePadding setCompoundDrawablePadding(int)之间的填充画板和文本。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值