1、类似java,得到组件,在添加监听,注意这里和java的方法有些不一样
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得按钮,添加监听器
//必须给按钮添加一个id
//强制转型为Button
Button btn = (Button) findViewById(R.id.loginbtn);
MyOnclickListener ml = new MyOnclickListener();
btn.setOnClickListener(ml);
}
class MyOnclickListener implements OnClickListener{
@Override
public void onClick(View v) {
Toast.makeText(MainActivity1.this, "点击了按钮", 5).show();
}
}
?2、利用匿名内部类,这和java是一样的
//获得按钮,添加监听器
//使用匿名内部类
Button btn = (Button) findViewById(R.id.loginbtn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity2.this, "点击了按钮", 5).show();
}
});
?3、activity实现onclicklistener接口
//实现监听器接口
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到按钮,设置监听器,现在activity也是一个监听器
Button btn =(Button)findViewById(R.id.loginbtn);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(this, "点击了按钮", 5).show();
}
}
?4、利用onclick属性,注意xml的写法,和方法一样要有View参数
//利用按钮的onclick属性
public void loginclick(View v){
Toast.makeText(this, "点击了按钮", 5).show();
}
?<Button
??????? android:id="@+id/loginbtn"
??????? android:onClick="loginclick"
???????? android:layout_width="match_parent"
??????? android:layout_height="wrap_content"
??????? android:text="@string/loginbtn"
???????
??????? />
?
原文:http://376798041.iteye.com/blog/2170451