安卓界面组件-按钮

    所有的UI组件里面,功能最容易被理解的恐怕就是按钮。安卓UI组件中提供了两个按钮:普通按钮和图片按钮,区别在于图片按钮显示的是一个图片。试想:开发游戏程序界面,放置一个没有任何效果的普通按钮,将会大大降低游戏的趣味。

由于按钮比较简单,所以本篇文章结构也比较简单。文章前面介绍了安卓的按钮和图片按钮,后面是本文重点,介绍了给组件加监听器的代码基本写法。

一      普通按钮

    普通按钮的属性比较简单,在eclipse里面可以直接查看到,开发过程中可以直接编辑它的属性,如下图:

    按钮的功能是检测用户的点击事件,之后驱动程序产生相应的动作。安卓框架为组件的事件监听机制提供了两种方案:

    方案1>给我们的组件设置id,程序将按钮实例化以后,通过setOnClickListener()方法设定

    方案2>在xml文件里面用android:onClick属性指定,属性的参数对应了方法名

方案1实例操作:

        Button bt = (Button)findViewById(R.id.button1);
        bt.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                
            }
        });
    }

方案2实例操作:

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:onClick="myView" />


    //java代码
    private void myView(){
        
    }

 

二  图片按钮

          图片按钮的用法和普通按钮基本相同,区别在于图片按钮能够显示图片,指定图片的属性android:src。同样,图片按钮和普通按钮都是能够绑定用户事件,实现监听功能。

图片按钮操作:

    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />

 

三    安卓监听器的基本写法

1>匿名内部类
bt.setOnClickListener(new onClickListener(){
   @Override
   public void onClick(View arg0){
   
   }
})
2>独立类的实现
class MyOnClickListener implements OnClickListener{
    @Override
    public void onClick(View v){
    
    }
}

bt.setOnClickListener(new MyOnClickListener(){
    @Override
    public void onClick(View v){
    super.onClick(v);
        }
})
共同的逻辑事件可以通过父类进行统一实现。
3>实现接口的方式实现
在我们需要的类里面实现所需要的接口.
public class MainActivity extends Activity implements OnClickListener{

    bt.setOnClickListener(this);
    
    @Override
    public void onClick(View v){
    
    }
}

    本人也是初学者,水平有限,难免犯错。希望批评指正!当然没看明白的也希望留言,我会修改文章,追求人人看懂!

posted @ 2017-02-23 20:38  爱潜水的猪  阅读(757)  评论(0编辑  收藏  举报