Button是Android开发中常用的组件之一,其功能和用法非常广,TextView,imageView应用的功能它全有,一般来讲,它是用来监听事件的,也就是被"按"的;
一, Button可以通过两种方式新建:
1, 在xml布局文件中进入新建:
<Button
android:id="@+id/bn1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="我是按钮1"
android:textColor="#fff"
android:textSize="20dp"/>
之后在代码中通过ID查找到这个按钮
Button bn1 = (Button) findViewById(R.id.bn1);
2,或者在代码中新建
LinearLayout ll = new LinearLayout(this);
Button bn1 = new Button(this);
ll.addView(bn1);
二,关于监听,Android平台下对控件的监听可以通过四种方式实现
1.使用接口继承按钮监听方法:
- package dickren123.hui.say_hello_to_world;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- /* 这里接口继承的方法是隶属于按钮BUTTON的,因此前面导入的头文件只需有BUTTON即可*/
- public class Hello_to_worldActivity extends Activity implements Button.OnClickListener{
- /** Called when the activity is first created. */
- private Button btn_say_hello;
- private TextView hello_world;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
- hello_world = (TextView)findViewById(R.id.textView1);
- btn_say_hello.setOnClickListener(this) ;//由于该类继承了BUTTON的监听,
- } //因此设置监听的参数只需传本类的对象即可
- public void onClick(View v) {
- // TODO Auto-generated method stub
- hello_world.setText("dickren123!");//抽象接口的内部方法的实现
- }
- }
package dickren123.hui.say_hello_to_world;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
/* 这里接口继承的方法是隶属于按钮BUTTON的,因此前面导入的头文件只需有BUTTON即可*/
public class Hello_to_worldActivity extends Activity implements Button.OnClickListener{
/** Called when the activity is first created. */
private Button btn_say_hello;
private TextView hello_world;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
hello_world = (TextView)findViewById(R.id.textView1);
btn_say_hello.setOnClickListener(this) ;//由于该类继承了BUTTON的监听,
} //因此设置监听的参数只需传本类的对象即可
public void onClick(View v) {
// TODO Auto-generated method stub
hello_world.setText("dickren123!");//抽象接口的内部方法的实现
}
}
2.使用接口继承view类的监听方法
- package dickren123.hui.say_hello_to_world;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;/* 导入的头文件需要有view类监听*/
- import android.widget.Button;
- import android.widget.TextView;
- public class Hello_to_worldActivity extends Activity implements OnClickListener{
- /** Called when the activity is first created. */
- private Button btn_say_hello;
- private TextView hello_world;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
- hello_world = (TextView)findViewById(R.id.textView1);
- btn_say_hello.setOnClickListener(this) ;//由于该类继承了view的监听,
- } //因此设置监听的参数只需传本类的对象即可
- public void onClick(View v) {
- // TODO Auto-generated method stub
- hello_world.setText("dickren123!");//抽象接口的内部方法的实现
- }
- }
package dickren123.hui.say_hello_to_world;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;/* 导入的头文件需要有view类监听*/
import android.widget.Button;
import android.widget.TextView;
public class Hello_to_worldActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
private Button btn_say_hello;
private TextView hello_world;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
hello_world = (TextView)findViewById(R.id.textView1);
btn_say_hello.setOnClickListener(this) ;//由于该类继承了view的监听,
} //因此设置监听的参数只需传本类的对象即可
public void onClick(View v) {
// TODO Auto-generated method stub
hello_world.setText("dickren123!");//抽象接口的内部方法的实现
}
}
3.不用接口,在类内部直接实现监听
- package dickren123.hui.say_hello_to_world;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- public class Hello_to_worldActivity extends Activity {
- /** Called when the activity is first created. */
- private Button btn_say_hello;
- private TextView hello_world;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
- hello_world = (TextView)findViewById(R.id.textView1);
- btn_say_hello.setOnClickListener(new Button.OnClickListener(){
- public void onClick(View v) { //使用匿名的Button实例
- // TODO Auto-generated method stub
- hello_world.setText("dickren123!");//抽象接口的内部方法的实现
- }
- }) ;
- }
- }
package dickren123.hui.say_hello_to_world;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class Hello_to_worldActivity extends Activity {
/** Called when the activity is first created. */
private Button btn_say_hello;
private TextView hello_world;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
hello_world = (TextView)findViewById(R.id.textView1);
btn_say_hello.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) { //使用匿名的Button实例
// TODO Auto-generated method stub
hello_world.setText("dickren123!");//抽象接口的内部方法的实现
}
}) ;
}
}
如果不使用匿名实例,也可以定义一个具体的实例,如下:
- package dickren123.hui.say_hello_to_world;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- public class Hello_to_worldActivity extends Activity {
- /** Called when the activity is first created. */
- private Button btn_say_hello;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
- btn_listener bl = new btn_listener();
- btn_say_hello.setOnClickListener(bl); //bl是类btn_listener的实例,而btn_listener为监听方法的接口
- } //因此设置监听的参数只需传本类的对象即可
- }
- class btn_listener implements Button.OnClickListener
- {
- public void onClick(View v) {
- // TODO Auto-generated method stub
- }
- }