android学习进行时----1.1.2UI部分Button使用-事件监听

来源:互联网 发布:人工智能会使人变懒吗 编辑:程序博客网 时间:2024/04/30 02:51

看着代码来说几个小知识点:

1)findViewById是通过R中自动生成的资源id号来生成对象,当然android中也可以通过new Button()这种方式来生成(tips里面补充一段代码一看即明白)

2)onClickListener点击事件监听可以通过一个类来实现此接口然后在类中实现onClick方法,也可以通过匿名内部类来实现此接口处理点击事件,例中button1和button2分别进行了实现

public class UIDemo extends Activity implements OnClickListener{
 TextView tv;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
   tv = (TextView)this.findViewById(R.string.tv);
   Button button1=(Button)this.findViewById(R.string.button1);
   Button button2=(Button)this.findViewById(R.string.button2);
  
   button1.setOnClickListener(this );
   button2.setOnClickListener(new OnClickListener(){

 @Override
 public void onClick(View v) {
   tv.setText("cacel pressed");
  
 }});
    }

 @Override
 public void onClick(View v) {
  // TODO Auto-generated method stub
  if(tv!=null)
  {
  tv.setText("OKPressed");
  Log.v("111", "pressed");
  }
 }
}

 

tips:通过new button这种方式来实现对象后,可以直接setcontentview()例

Button button = new Button(this);  

button .setText("Test");  

this.setContentView(button ); 

如控件较多要同时显示可以通过new 一个布局管理器的容器(不同的布局方式不一样),然后将控件全部add进去如:

  • Button btn = new Button(this);  
  • btn.setText("TestButton");  
  • Button btn2 = new Button(this);  
  • btn2.setText("TestButton2");  
  • LinearLayout layout = new LinearLayout(this);  
  • layout.setOrientation(LinearLayout.VERTICAL);  
  • layout.addView(btn);  
  • layout.addView(btn2);  
  • this.setContentView(layout);