Android Activity之间跳转和参数传递
创建Activity
1,新创建的activity需要继承Activity类,并重写onCreate方法
package com.example.testsend; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.newtest); } }
2,创建好这个新的Activity之后,需要将这个新的Activity配置到AndroidManifest.xml中
<activity android:name="com.example.testsend.MainActivity"> </activity>
Activity之间通信
如果我们要通过一个Activity来启动另一个Activity,可以使用startActivity(Intent intent)方法来传入一个Intent对象
Intent intent = new Intent(this, MainActivity2.class); startActivity(intent); //or Intent intent = new Intent(); intent.setClass(MainActivity.this, MainActivity2.class); startActivity(intent);
如果通过点击MainActivity上的一个button来打开MainActivity2
设置一个button元素
<Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="button for opening" android:onClick="open" />
在MainActivity中设置该open方法
public void open(view v){
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent);
}
打开新的Activity并传递参数
在MainActivity上传递参数
public void open(View v){ Intent intent =new Intent(MainActivity.this,MainActivity2.class); //用Bundle携带数据 Bundle bundle=new Bundle(); //传递name参数为wayne bundle.putString("name", " wayne"); intent.putExtras(bundle); startActivity(intent); }
在MainActivity2上接收参数
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.newtest); //新页面接收数据 Bundle bundle = this.getIntent().getExtras(); //接收name值 String name = bundle.getString("name"); Log.i("获取到的name值为",name); }
CrazyQA