Button一些属性和几种监听事件

介绍:

TextView与Button是继承关系,Button继承自TextView。开发中一般情况下,TextView用来承载静态文本,Button用来响应点击事件。很多人容易忽略的一点是TextVIew也有点击事件,TextView 继承自View,点击事件是从View就有的特性,所以TextView也能点击。所以Button和Textview的一些属性是通用的。

Button属性:

android:drawable        //放一个drawable资源
android:drawableTop     //可拉伸要绘制的文本的上面
android:drawableBottom  //可拉伸要绘制的文本的下面
android:drawableLeft    //可拉伸要绘制的文本的左侧
android:drawableRight   //可拉伸要绘制的文本的右侧
android:text            //设置显示的文本
android:textColor       //设置显示文本的颜色
android:textSize        //设置显示文本字体大小
android:background      //可拉伸使用的背景
android:onClick         //设置点击事件


监听事件:监听事件有三种(两种常用的,一种不常用的)

(常用)实现接口的方式实现:


public class MainActivity extends AppCompatActivity implements View.OnClickListener{
//实现View.OnClickListener接口
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button)findViewById(R.id.b1);  //把But进行强转
        button.setOnClickListener(this);  //绑定监听
    }

    @Override
    //重写onClick方法
    public void onClick(View v) {
        Toast.makeText(MainActivity.this,"点了一下",Toast.LENGTH_SHORT).show();
    }
}

(常用) 匿名内部类的方法实现:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = findViewById(R.id.b1);  //把But进行强转
        //匿名内部类
        button.setOnClickListener(new View.OnClickListener() {   
         //重写onCLick方法
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "点了一下", Toast.LENGTH_SHORT).show();
            }
        });

    }
}

(不常用)独立类的实现:

用于多个按钮被点击后需要执行相同的代码段时,可将相同的代码段在父类中实现

public class MainActivity extends AppCompatActivity {
    /*
    1.初始化所需控件
     */
    private Button myButton;
    private ImageButton myImageButton;
    //初始化函数
    public void init(){
        myButton = (Button) findViewById(R.id.myButton1);
        myImageButton = (ImageButton)findViewById(R.id.myImageButton1);
    }
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //设置监听器(外部类的方法)
        myButton.setOnClickListener(new MyOnClickListener(){
            @Override
            public void onClick(View view) {
                super.onClick(view);
                Toast.makeText(MainActivity.this,"Button1被点击",Toast.LENGTH_LONG).show();
            }
        });
        myImageButton.setOnClickListener(new MyOnClickListener(){
            @Override
            public void onClick(View view) {
                super.onClick(view);
                Toast.makeText(MainActivity.this,"Button2被点击",Toast.LENGTH_LONG).show();
                /*Toast.makeText(Context:context,CharSequence:text,int duration).show(),
                的第三个参数只能传Toast.LENGTH_SHORT或Toast.LENGTH_LONG,他们反别对应的值可以按住ctrl点击鼠标左键查看*/
            }
        });
    }
}
//外部类,实现父类方法。
class MyOnClickListener implements View.OnClickListener{
    @Override
    public void onClick(View view) {
        view.setAlpha(0.5f);//设置按钮的透明度,0-1,1是不透明,0是完全透明
    }
}

猜你喜欢

转载自blog.csdn.net/z1web/article/details/84197786