Android响应按钮的程序结构

Android响应按钮的程序结构

发布: admin | 类别: 程序开发 | 点击:2013 | 更新时间:2018-04-07 09:09:58

0 条评论

图形界面的按钮是最普通的控件,Android响应按钮的程序结构大体分成如下两种:
    (1)采样匿名内部类的按钮实现方式:
    如下面的Java程序,在声明Class时只是从Activity派生,并没有实现任何接口。因此为了实现按钮事件的响应,就必须在下面的方法中用匿名内部类的方式实现,比如
       //退出按钮;
        bt_exit.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
             finish();
            }
        });
在这段程序中,new View.OnClickListener() 就是匿名的的内部类,而
public void onClick(View v) {
                // Perform action on click
             finish();
            }
就是这个内部类onClick方法的实现。
    上述完整的程序结构如下:
public class a15act extends Activity {
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      
        setTitle("调光手电筒   2010-3-20");
      
        //建立主发光区TextView的对象;
        final TextView tv_light=(TextView) findViewById(R.id.tv_light);
      
      
        //建立三个Button的对象;
        Button bt_low=(Button) findViewById(R.id.bt_low);
        Button bt_high=(Button) findViewById(R.id.bt_high);
        Button bt_exit=(Button) findViewById(R.id.bt_exit);
      
        //退出按钮;
        bt_exit.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
             finish();
            }
        });
        //低亮度按钮;
        bt_low.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
            
    tv_light.setBackgroundColor(Color.GRAY);
             
            }
        });
      
        //高亮度按钮;
        bt_high.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
             tv_light.setBackgroundColor(Color.WHITE);
            
            }
        });
      
    }
}

    (2)用Activity直接实现OnClickListener接口的方式:
    与上面的程序结构不同,在声明Class时可以直接实现OnClickListener,然后在Class内部就可以用同一个onClick方法实现所有按钮的响应,按钮区分可采用swith--case的语句结构实现。
    例如:public class mmact extends Activity implements OnClickListener, 在class声明时不仅从Activity派生,而且还实现OnClickListener 接口。在class中用语句实现接口OnClickListener 的onClick方法,即public void onClick(View aView)。对于很多按钮事件,可以用switch--case实现,例如
     
        switch (aView.getId()) { 
            case R.id.button1: 
                setTitle("Start the App"); 
              
                EditText edt = (EditText) findViewById(R.id.edittext_name); 
                TextView tv = (TextView) findViewById(R.id.textview_display); 
                tv.setText("Hello," + edt.getText()); 
              
              
              
                //android:text="YES" ;

                break; 
            case R.id.button2: 
                finish(); 
                break; 
        } 
    下面是个比较完整的程序结构: www.2cto.com

public class mmact extends Activity implements OnClickListener { 
    
    @Override
    public void onCreate(Bundle savedInstanceState) { 
         
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        //从资源文件中获取按钮对象的引用 
        Button sButton1 = (Button)findViewById(R.id.button1); 
        Button sButton2 = (Button)findViewById(R.id.button2); 
        //注册点击事件监听者 
        sButton1.setOnClickListener(this); 
        sButton2.setOnClickListener(this); 
    } 
    
    public void onClick(View aView) { 
         
        switch (aView.getId()) { 
            case R.id.button1: 
                setTitle("Start the App"); 
              
                EditText edt = (EditText) findViewById(R.id.edittext_name); 
                TextView tv = (TextView) findViewById(R.id.textview_display); 
                tv.setText("Hello," + edt.getText()); 
              
              
              
                //android:text="YES" ;

                break; 
            case R.id.button2: 
                finish(); 
                break; 
        } 
         
         
    } 
}
关键字 :程序开发 Android

0 条评论

 

欢迎留下您的评论

红框选项必须输入,不允许html代码。

联系我们

  • Address: Floor.15,Building No.1,Idealism center ,No.38 Tianyi Street, Chengdu high tech Zone,Sichuan China, 610000
  • Phone Number: 18908191278 028-61408608
  • Website: www.drawnet.cn
  • QQ: 464410235
  • WeChat: 464410235
  • Email: master@drawnet.cn

关于我们

关注微信公众号

扫码关注微信服务号

进入微信小程序

扫码进入微信小程序