1、Intent是Android程序中各组件之间交互的重要方式,一般可用于启动活动、启动服务、以及发送广播等场景,这里先对活动进行说明Intent的一些作用。
2、Intent的用法大致可分为,显式Intent和隐式Intent,本文针对显示的Intent进行简单的说明。
3、Intent有多个构造函数的重载,其中一个是Intent(Context packageContext,Class<?>cls)。这个构造函数有两个参数,第一个参数Context要求提供一个启动活动的上下文,第二个参数Class则是制定要启动的目标活动。通过这个构造函数可以构建出Intent的意图,然后用Activity类中提供了一个startActivity()的方法。举例如下:
新建项目myIntent,添加secondActivity类,里面添加代码:
public class secondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.two_activity);
}
}
同时添加一个two_activity.xml文件。添加一个一个按钮,
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Welcome"/>
在activity_main.xml添加一个跳转按钮:
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Click me"/>
最后在MainActivity.java中添加单击setOnClickListener()方法:
public class MainActivity extends Activity {
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=(Button)findViewById(R.id.button1);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this,secondActivity.class);
startActivity(intent);
}
});
}
}
这时候在手机上查看应用会发现无法跳转到第二个活动,问题在于,每一个活动都需要在AndroidManifest.xml中进行注册,在AndroidManifest.xml的<application></application>添加<activity android:name=".secondActivity"></activity>保存后继续运行即可。