记账本小程序7天开发记录(第四天)

俗话说:磨刀不误砍柴工。之前总结了Android开发的基本步骤,今天简单说一下点击事件或者获取权限如何去写

android应用开发的步骤。

  1. res→layout文件夹 修改xml布局文件。
  2. src→.java文件填写代码
  3. 寻找关心的控件→findViewById();
  4. 设置点击事件或者获取数据。
  5. 添加权限。

但是点击事件或者获取权限该如何去写,今天主要学习常见的点击事件的写法

点击事件的基本写法

  • 内部类实现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的接口
  1. 适用于界面按钮较多,如果通过内部类或者匿名内部类代码比较臃肿。
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();
    }

以下展示应用程序界面结果:

posted @ 2019-02-21 18:10  符黑石  阅读(312)  评论(0编辑  收藏  举报