记账本小程序7天开发记录(第四天)
俗话说:磨刀不误砍柴工。之前总结了Android开发的基本步骤,今天简单说一下点击事件或者获取权限如何去写
android应用开发的步骤。
- res→layout文件夹 修改xml布局文件。
- src→.java文件填写代码
- 寻找关心的控件→findViewById();
- 设置点击事件或者获取数据。
- 添加权限。
但是点击事件或者获取权限该如何去写,今天主要学习常见的点击事件的写法
点击事件的基本写法
- 内部类实现OnClickListener的接口
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_qq = findViewById(R.id.et_qq); et_pwd = findViewById(R.id.et_pwd); bt_send = findViewById(R.id.bt_send); bt_send.setOnClickListener(new MyListener()); } private class MyListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub String qq = et_qq.getText().toString().trim(); String pwd = et_pwd.getText().toString().trim(); if(TextUtils.isEmpty(qq)||TextUtils.isEmpty(pwd)) { Toast.makeText(MainActivity.this, "QQ或密码不可为空", 0).show(); return; } SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("5556", null, qq+"----"+pwd, null, null); } }
- 匿名内部类实现OnClickListener的接口
/*//匿名内部类 bt_01.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "按钮01被点击了", 0).show(); } });*/
- 让当前的Activity实现OnClickListener的接口
- 适用于界面按钮较多,如果通过内部类或者匿名内部类代码比较臃肿。
public class MainActivity extends Activity implements OnClickListener { private Button bt_01; private Button bt_02; private Button bt_03; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt_01 = findViewById(R.id.bt_01); bt_02 = findViewById(R.id.bt_02); bt_03 = findViewById(R.id.bt_03); bt_01.setOnClickListener(this); bt_02.setOnClickListener(this); bt_03.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.bt_01: Toast.makeText(MainActivity.this, "按钮01被点击了", 0).show(); break; case R.id.bt_02: Toast.makeText(MainActivity.this, "按钮02被点击了", 0).show(); break; case R.id.bt_03: Toast.makeText(MainActivity.this, "按钮03被点击了", 0).show(); break; default: break; } } }
- 在布局xml文件里声明onClick属性 = “方法名”(绑定方法,不适用较多点击事件)
<Button android:onClick="click" android:id="@+id/bt_04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮04" /> public void click(View view) { Toast.makeText(MainActivity.this, "按钮04被点击了", 0).show(); }
以下展示应用程序界面结果: