button

作者: cxm11 | 来源:发表于2016-03-26 23:31 被阅读139次

    Button继承自TextView.它的功能就是提供一个按钮,这个按钮可以供用户点击,当用户对按钮进行操作的时候,触发相应事件,如点击,触摸。

    还有一个ImageButton,它同继承自Button,可以在ImageButton中显示一个图片展示给用户看,并且对其Text属性设置值的时候是无效的,其他功能与button一样。

    常用事件:
    一般对于一个按钮而言,用的最多的就是点击事件,Button间接继承自View,而AndroidUI中的所有事件,都是定义在View中的。示例讲解的点击事件、触摸事件,其他事件的使用方式与此类似,只是触发的时机不同而已。此处分别需要实现View.OnClickListener、View.OnTouchListener接口的方法。

    View.OnClickListener,需要实现onClick(View v)方法,其中v为当前触发事件的控件。
    View.OnTouchListener,需要实现onTouch(View v , MotionEvent event),其中v为当前触发事件的控件,event包括了触摸时的具体内容,如移动、按下等


    添加Button到XML布局文件中。

    处理按钮点击:
    按钮点击有两种处理方法:
    第一种是通过onClick属性,通过这个属性设置处理点击事件的方法名, 在Activity中实现这个方法。
    另一种方法是典型的事件监听机制的应用形式,下面详细说明这两种方法。

    1. 通过onClick属性设置处理方法:
      在XML布局文件中设置Button的属性:
      android:onClick="yourMethodName"
      然后在该布局文件对应的Activity中实现该方法:
    /** Called when the user touches the button */
    public void yourMethodName(View view)
      {
    
       // Do something in response to button click
    }
    

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

    1. 返回void
    2. 只有一个参数View,这个View就是被点击的这个控件。

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

    可以写一个内部类,实现OnClickListener接口

    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
    
      }
    });
    

    android Button监听的几种方式:

    1. 一个button控件对应一个监听(采用匿名内部类,简短,清晰易懂,适用于“一次性”使用的按钮):

       Button buttontest; 
       buttontest = (Button) findViewById(R.id.button1); 
       buttontest.setOnClickListener(new View.OnClickListener() {                      
       @Override           
       public void onClick(View v) {               
       // TODO Auto-generated method stub              
       Log.i("TEST", "**button** onClick");            
       }       
       });
      
    2. 多个button对应一个监听1:

    start = (Button) findViewById(R.id.button1);
    stop = (Button)findViewById(R.id.button2);
    start.setOnClickListener(mylistener );
    stop.setOnClickListener(mylistener );
    View.OnClickListener mylistener = new     View.OnClickListener() {              
    @Override       
    public void onClick(View v) {           
    switch (v.getId()) {            
    case R.id.button1:              
    Log.d(TAG, "Start to recorder video\n");                
    start_recorde();                
    break;          
    case R.id.button2:              
    Log.d(TAG, "Stop to recorder video\n");
    stop_recorde();             
    break;          
    default:                
    break;          
    }           
    }   
    };
    
    1. 多个button对应一个监听2:

       public class MainActivity extends Activity implements View.OnClickListener{ 
       //界面元素  
       private Button start;   
       private Button stop;     
       @Override 
       public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_main); 
      
       start = (Button) findViewById(R.id.button1); 
       stop = (Button) findViewById(R.id.button2);       
       start.setOnClickListener(this);     
       stop.setOnClickListener(this); 
       } 
       @Override 
       public boolean onCreateOptionsMenu(Menu menu) {   
       getMenuInflater().inflate(R.menu.activity_main, menu); 
       return true; 
       }   
       @Override   
       public void onClick(View v) {       
       switch (v.getId()) {        
       case R.id.button1:          
       Log.d(TAG, "Start to recorder video\n");                    
       break;      
       case R.id.button2:          
       Log.d(TAG, "Stop to recorder video\n");           
       break;      
       default:            
       break;      
       }   
       }       
       }
      
    2. xml中绑定监听

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

    对应java代码如下:

    Button btn = (Button) findViewById(R.id.button1);
    public void mybuttonlistener(View target){ 
    //do something5 
    }
    

    相关文章

      网友评论

        本文标题:button

        本文链接:https://www.haomeiwen.com/subject/glwdlttx.html