看着代码来说几个小知识点:
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);