Android 实现监听的四种方法详解实例代码
直接上代码,大家可以参考下
(1)自身类作为事件监听器
packagecn.edu.gdmec.s07150745.work5;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.Toast;
publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListener{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Buttonbtn1=(Button)findViewById(R.id.btn1);
btn1.setText("单击");
btn1.setOnClickListener(this);
}
@Override
publicvoidonClick(Viewv){
Toast.makeText(this,"已单击我...",Toast.LENGTH_SHORT).show();
System.out.println("已单击我...");
}
}
(2)外部类作为事件监听器:
packagecn.edu.gdmec.s07150745.work5;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
publicclassAct2extendsAppCompatActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act2);
Buttonbtn2=(Button)findViewById(R.id.btn2);
btn2.setText("单击");
btn2.setOnClickListener(newOuterClass("已单击我..."));
}
}
classOuterClassimplementsView.OnClickListener{
privateStringstr="已单击我....";
publicOuterClass(Stringstr){
super();
this.str=str;
}
@Override
publicvoidonClick(Viewv){
System.out.println(str);
}
}
(3)内部类作为事件监听器:
packagecn.edu.gdmec.s07150745.work5;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.Toast;
publicclassAct3extendsAppCompatActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act3);
Buttonbtn3=(Button)findViewById(R.id.btn3);
btn3.setText("单击");
btn3.setOnClickListener(newOuterClass());
}
classOuterClassimplementsView.OnClickListener{
@Override
publicvoidonClick(Viewv){
Toast.makeText(Act3.this,"已单击我...",Toast.LENGTH_SHORT).show();
System.out.println("已单击我...");
}
}
}
(4)匿名类作为事件监听器:
packagecn.edu.gdmec.s07150745.work5;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.Toast;
publicclassAct4extendsAppCompatActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act4);
Buttonbtn4=(Button)findViewById(R.id.btn4);
btn4.setText("单击");
btn4.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
Toast.makeText(Act4.this,"已单击我...",Toast.LENGTH_SHORT).show();
System.out.println("已单击我...");
}
});
}
}
以上四种方法之后,在xml文件中给每一个事件即activity里面定义多一个androidlabel即可。不忘在每个activity里面添加如下蓝色的一段代码哦。
<activityandroid:name=".MainActivity"android:label="1"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!