当前位置:操作系统 > 安卓/Android >>

Android响应按钮的程序结构

 

  图形界面的按钮是最普通的控件,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.zzzyk.com

 

public class mmact extends Activity implements OnClickListener { 

    

    @Override

    public void onCreate(Bundle savedInstanceState) { 

         

        super.onCreate(savedInstanceState); 补充:移动开发 , Android ,

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,