android学习笔记11------Activity之切换与参数传递
7001 点击·0 回帖
![]() | ![]() | |
![]() | 实现功能: 1.两个Activity之间的切换 2.两个Activity带返回值的切换 效果图: ![]() 点击切换Activity,或带返回值的Activity,出现: ![]() 点击关闭,其中带返回值的效果如下: ![]() import Android.app.Activity; import Android.content.Intent; import Android.os.Bundle; import Android.view.View; import Android.view.View.OnClickListener; import Android.widget.Button; import Android.widget.TextView; public class Main extends Activity { Button button; Button button2; TextView textView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button=(Button)findViewById(R.id.button); button2=(Button)findViewById(R.id.button2); textView=(TextView)findViewById(R.id.display); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { /** * 向新activity传参数 */ Intent intent= new Intent(Main.this, OtherActivity.class); intent.putExtra("age", 10); intent.putExtra("name", "lingming"); Main.this.startActivity(intent); } }); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { /** * 带返回值的Activity切换 */ Intent intent= new Intent(Main.this, OtherActivity.class); intent.putExtra("age", 10); intent.putExtra("name", "lingming"); Main.this.startActivityForResult(intent, 3);//3是标示请求码,随便写 } }); } /** * 接收带有返回值的Activity方法 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); textView.setText("requestCode:"+requestCode+'n'+ "resultCode:"+resultCode+'n'+ "接收到:"+data.getStringExtra("返回值") ); } } import Android.app.Activity; import Android.content.Intent; import Android.os.Bundle; import Android.view.View; import Android.view.View.OnClickListener; import Android.widget.Button; import Android.widget.TextView; public class Main extends Activity { Button button; Button button2; TextView textView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button=(Button)findViewById(R.id.button); button2=(Button)findViewById(R.id.button2); textView=(TextView)findViewById(R.id.display); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { /** * 向新activity传参数 */ Intent intent= new Intent(Main.this, OtherActivity.class); intent.putExtra("age", 10); intent.putExtra("name", "lingming"); Main.this.startActivity(intent); } }); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { /** * 带返回值的Activity切换 */ Intent intent= new Intent(Main.this, OtherActivity.class); intent.putExtra("age", 10); intent.putExtra("name", "lingming"); Main.this.startActivityForResult(intent, 3);//3是标示请求码,随便写 } }); } /** * 接收带有返回值的Activity方法 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); textView.setText("requestCode:"+requestCode+'n'+ "resultCode:"+resultCode+'n'+ "接收到:"+data.getStringExtra("返回值") ); } } [java] import Android.app.Activity; import Android.content.Intent; import Android.os.Bundle; import Android.view.View; import Android.view.View.OnClickListener; import Android.widget.Button; import Android.widget.TextView; public class OtherActivity extends Activity { TextView textView; Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.otherui); Intent intent=this.getIntent(); int age=intent.getIntExtra("age", 0); String name=intent.getStringExtra("name"); textView=(TextView)findViewById(R.id.textView); textView.setText("年龄:"+age+'n'+"姓名:"+name); button=(Button)findViewById(R.id.finish); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(); intent.putExtra("返回值", "这是返回值"); OtherActivity.this.setResult(12, intent); OtherActivity.this.finish(); } }); } } import Android.app.Activity; import Android.content.Intent; import Android.os.Bundle; import Android.view.View; import Android.view.View.OnClickListener; import Android.widget.Button; import Android.widget.TextView; public class OtherActivity extends Activity { TextView textView; Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.otherui); Intent intent=this.getIntent(); int age=intent.getIntExtra("age", 0); String name=intent.getStringExtra("name"); textView=(TextView)findViewById(R.id.textView); textView.setText("年龄:"+age+'n'+"姓名:"+name); button=(Button)findViewById(R.id.finish); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(); intent.putExtra("返回值", "这是返回值"); OtherActivity.this.setResult(12, intent); OtherActivity.this.finish(); } }); } } main.xml [java] <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:orientation="vertical" Android:layout_width="fill_parent" Android:layout_height="fill_parent" > <TextView Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:text="这是MainActivity" /> <Button Android:text="切换Activity" Android:id="@+id/button" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></Button> <Button Android:text="带返回值的Activity" Android:id="@+id/button2" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></Button> <TextView Android:id="@+id/display" Android:layout_width="fill_parent" Android:layout_height="wrap_content" /> </LinearLayout> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:orientation="vertical" Android:layout_width="fill_parent" Android:layout_height="fill_parent" > <TextView Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:text="这是MainActivity" /> <Button Android:text="切换Activity" Android:id="@+id/button" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></Button> <Button Android:text="带返回值的Activity" Android:id="@+id/button2" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></Button> <TextView Android:id="@+id/display" Android:layout_width="fill_parent" Android:layout_height="wrap_content" /> </LinearLayout> otherui.xml [java] <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:orientation="vertical" Android:layout_width="fill_parent" Android:layout_height="fill_parent" > <TextView Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:text="这是新的Activity" /> <TextView Android:id="@+id/textView" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></TextView> <Button Android:text="关闭" Android:id="@+id/finish" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></Button> </LinearLayout> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:orientation="vertical" Android:layout_width="fill_parent" Android:layout_height="fill_parent" > <TextView Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:text="这是新的Activity" /> <TextView Android:id="@+id/textView" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></TextView> <Button Android:text="关闭" Android:id="@+id/finish" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></Button> </LinearLayout> 注意第二个Activity要在AndroidMainfest.xml中进行配置 [java] <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android" package="com.luku.mulActivity" Android:versionCode="1" Android:versionName="1.0"> <uses-sdk Android:minSdkVersion="8" /> <application Android:icon="@drawable/icon" Android:label="@string/app_name"> <activity Android:name=".Main" Android:label="@string/app_name"> <intent-filter> <action Android:name="Android.intent.action.MAIN" /> <category Android:name="Android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity Android:name=".OtherActivity" Android:label="@string/app_name"> </activity> </application> </manifest> | |
![]() | ![]() |