一个程序中很有可能不止一个activity,那么就需要实现不同activity之间的转化。不同activity之间的转化可以用intent实现。
intent是一个public class,它是一个启动行为的抽象描述,它有许多的作用,最明显的作用就是用来启动activity,broadcastreceiver和service。
比如要想在main_activity中启动activity2和activity3,在main-activity的代码如下:
public class MainActivity extends AppCompatActivity {
Button btn1,btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=(Button) findViewById(R.id.button);
btn2=(Button) findViewById(R.id.button2);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1=new Intent();
intent1.setClass(com.example.dell.intenttest.MainActivity.this,activity2.class);
startActivity(intent1);
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent2=new Intent(com.example.dell.intenttest.MainActivity.this,activity3.class);
startActivity(intent2);
}
});
}
}
其中btn1和btn2是两个按钮,点击以后要跳转至activity2和activity3,需要传递的参数第一个是当前activity的context,第二个是要进入的acticity类。上面的两种写法(两个button各代表一种)是等价的。
要注意,btn的findviewbyid一定要写在绑定布局以后。
这样就可以启动别的activity了。
另外,android手机上的返回按钮就是返回上一个activity,如果是在Lunch activity中按返回按钮则会返回桌面,application进入后台。
intent的官方文档:
https://developer.android.com/reference/android/content/Intent.html