为应用添加新的Activity
第一步:新建一个继承Activity的类,如:NewActivity
public class NewActivityextends Activity {
@Override protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
//这里可以使用setContentView(R.layout.xxx)显示某个视图....
}
}
第二步:需要在功能清单AndroidManifest.xml文件中添加进上面Activity配置代码(红色部分):
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="cn.itcast.action"
android:versionCode="1"
android:versionName="1.0">
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
.....
<activity android:name=".NewActivity"android:label="新activity的页面标题"/>
</application>
...
</manifest>
android:name属性值的前面加了一个点表示NewActivity是当前包cn.itcast.action下的类,如果类在应用的当前包下,可以省略点符号,如果类在应用的子包下必须加点,如:NewActivity类在cn.itcast.action.user包下可以这样写:<activityandroid:name=“.user.NewActivity“ />
打开新的Activity ,不传递参数
在一个Activity中可以使用系统提供的startActivity(Intentintent)方法打开新的Activity,在打开新的Activity前,你可以决定是否为新的Activity传递参数:
第一种:打开新的Activity,不传递参数
public class MainActivityextends Activity {
@Override protected void onCreate(BundlesavedInstanceState) {
.......
Button button =(Button) this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){//点击该按钮会打开一个新的Activity
public voidonClick(View v) {
//新建一个显式意图,第一个参数为当前Activity类对象,第二个参数为你要打开的Activity类
startActivity(new Intent(MainActivity.this,NewActivity.class));
}});
}
}
打开新的Activity,并传递若干个参数给它
第二种:打开新的Activity,并传递若干个参数给它:
public class MainActivityextends Activity {
@Override protected void onCreate(BundlesavedInstanceState) {
.......
button.setOnClickListener(newView.OnClickListener(){//点击该按钮会打开一个新的Activity
public voidonClick(View v) {
Intent intent= new Intent(MainActivity.this, NewActivity.class)
Bundle bundle = newBundle();//该类用作携带数据
bundle.putString("name","传智播客");
bundle.putInt("age",4);
intent.putExtras(bundle);//附带上额外的数据
startActivity(intent);
}}); }
}
在新的Activity中接收前面Activity传递过来的参数:
public class NewActivityextends Activity {
@Override protected voidonCreate(Bundle savedInstanceState) {
........
Bundle bundle =this.getIntent().getExtras();
String name =bundle.getString("name");
int age = bundle.getInt("age");
}
}