1.常规跳转
button1 = findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,EditTextActivity.class);
startActivity(intent);
}
});
2.如果button需要进行跳转页面的操作,每一个都要setOnClickListener然后New 一个OnClickListener,很麻烦。
首先写一个OnClick类,让这个类实现OnClickListener这个接口。
然后在onClick里面,有个入参View,让View判断当前是哪个控件,从而实现相关操作。
通过v.getId(),case根据不同id,执行不同操作。
private class OnClick implements View.OnClickListener{
@Override
public void onClick(View v) {
Intent intent = null;
switch (v.getId()){
case R.id.button1:
intent = new Intent(MainActivity.this,EditTextActivity.class);
break;
case R.id.button2:
intent = new Intent(MainActivity.this,RadioButtonActivity.class);
break;
case R.id.button3:
intent = new Intent(MainActivity.this,CheckBoxActivity.class);
break;
}
startActivity(intent);
}
}
然后再写一个方法,设置监听器。
private void setListeners(){
OnClick onClick = new OnClick();
button1.setOnClickListener(onClick);
button2.setOnClickListener(onClick);
button3.setOnClickListener(onClick);
}
在OnCreate里面调用setListeners()
button1 = findViewById(R.id.button1);
button2 = findViewById(R.id.button2);
button3 = findViewById(R.id.button3);
setListeners();
总结:先findViewById,再调用setListeners()方法,这个方法里给每个控件设置为setOnClickListener(onClick),OnClick又实现了View.OnClickListener这个接口,在里面根据v.id来判断当前点击的是哪个,执行相应操作,跳转到不同界面。
3.我们新建Activity的时候,继承的是Activity,但是默认的是继承的是AppCompatActivity,区别在于AppCompatActivity是Activity衍生出来的一个子类,继承AppCompatActivity默认给我们标题栏,继承Activity的时候就没有默认的标题栏。