今天做完作业,感觉代码很乱,花了点时间梳理一下,很适用于多事件处理的程序。
以三个按钮功能实现为例(save,reset,logout)
纠正后:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {//记得实现事件接口private Button save,reset,logout;//一、变量声明private TextView Msg;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Msg =findViewById(R.id.Msg);//二、变量初始化save =findViewById(R.id.save);reset=findViewById(R.id.reset);logout=findViewById(R.id.logout);//三、外部类注册事件监听器save.setOnClickListener(this);reset.setOnClickListener(this);logout.setOnClickListener(this);}@Overridepublic void onClick(View v) {//四、事件处理分类switch (v.getId()){case R.id.save:btn_save();break;case R.id.reset:btn_reset();break;case R.id.logout:btn_logout();break;}}private void btn_save() {//五、具体实现方法Toast.makeText(this, Msg.getText(),Toast.LENGTH_LONG).show();}//用Toast显示文本private void btn_reset(){Msg.setText(\"\");//清空文本}private void btn_logout(){MainActivity.this.finish();//退出app}}
纠正之前初始化组件:
Button save=(Button)findViewById(R.id.save);save.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(this, Msg.getText(),Toast.LENGTH_LONG).show();}});
这样写好处就是方便,但是不能使用外部类处理事件,因为这一代码是在OnCreate()方法里实现的,而外部类实现方法是与OnCreate()并列的,不能访问方法内里的属性。
若多事件要处理代码会比较乱
——————
第一次写文章,请多多指教
若内容有误,欢迎指出