關於Button的觀察者模式

觀察者模式
觀察者:OnClickListener
被觀察者:Button
訂閱:setOnClickListener()
事件:onClick()

4種訂閱方式

  • 在佈局中指定onClick屬性

    android:onClick=“click”
    btn = (Button) findViewById(R.id.btn);
    public void click(View v){}

  • 使用匿名內部類

    btn=(Button) findViewById(R.id.btn);
    btn.setOnclickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v){}
    });

  • 在當前Activity中實現OnClickListener接口

    public class MainActivity extends AppCompatActivity implements View.OnclickListener{
    btn_one=(Button) findViewById(R.id.btn);
    btn_one.setOnClickListener(this);
    public void onClick(View v){
    switch (v.getId()){
    case R.id.btn_one:break;
    }
    }

  • 創建內部類
    內部類重寫了onClick()方法,訂閱時傳入內部類對象,點擊事件自動觸發onClick()方法。

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	btn = (Button) findViewById(R.id.btn);
	btn.setOnClickListener(new MyButton());

private class MyButton implements View.OnClickListener {
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
			case R.id.btn:break;
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章