接著上次為Activity定義新的生命周期講的繼續(xù)說恰聘,現(xiàn)在給按鈕添加一個點擊事件,代碼如下
public class MainActivity extends BaseActivity implements OnClickListener {
@Override
protected void initViews(Bundle saveInstanceState) {
setContentView(R.layout.activity_main);
Button btTest = $(R.id.bt_test);
btTest.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_test:
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
break;
default:
break;
}
}
相信好多人都是這么些代碼的甫题,不能說不對,但反對這么些锰蓬,看那個onClick方法幔睬,里面要使用switch...case...語句對R.id.bt_test的值進行判斷,R這個類就會在程序中反復(fù)出現(xiàn)芹扭,這回擾亂面向?qū)ο蟮木幊田L(fēng)格麻顶,不如在initViews方法中一次性把所有控件都初始化了,不要在頻繁使用R.id了
Android中還有另以一種事件編程方式舱卡,代碼如下
Button btTest = $(R.id.bt_test);
btTest.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
gotoLoginActivity();
}
});
上面的代碼有以下兩個優(yōu)點:
- 直接在btTest這個按鈕對象上增加點擊事件辅肾,是面向?qū)ο蟮膶懛ǎ?/li>
- 將onclick方法的實現(xiàn),封裝成單獨的方法轮锥,代碼如下
private void gotoLoginActivity() {
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}
這樣onclick()方法就不會那么臃腫了矫钓,代碼也會清晰很多。