功能需求:在MainActivity跳转到下一个页面
主页面只有一个按钮控件下一个页面有2个TextView 控件 和一个 Button控件Button 按钮用于 从下一个页面带需要的数据返回MainActivity 页面1、在res/layout布局好界面 有2个.xml文件 用来 布局 MainActivity 和下一个页面的
界面代码
activity_main
<RelativeLayout xmlns:android=""
xmlns:tools="" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" ><Button
android:id="@+id/bt_jump" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="跳转到下一个页面" android:onClick="jump"/> <TextView android:id="@+id/back_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/bt_jump" /></RelativeLayout>
---------------------------nextactivity代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一个Activity页面" android:textSize="50sp"/><TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="40sp"/> <Button android:id="@+id/bt_back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="返回MianActivity" android:onClick="back_mainactivity" /> </LinearLayout>
---------------------------------
2、然后在配置清单AndroidManifest.xml文件里 配置要跳转的类
代码
<activity android:name=".NextActivity"></activity>//.代表当前包 -- 然后 加类名//如果不要. 就包名.类名---------------------------------
3、先在MainActivity 实现 跳到下一个页面的 功能 代码public class MainActivity extends Activity {
private TextView textview;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textview = (TextView) this.findViewById(R.id.back_textview); }//跳到下一页的 按钮 监听 public void jump(View view){ //显式跳转//Intent -- 意图//第一个参数 -- 当前类//第二个参数 -- 要跳到哪个页 -- 类名.class Intent intent = new Intent(this, NextActivity.class); Bundle bundle = new Bundle();//用 这个 对象 来装 要传输的数据 //准备 要 传输 到 下一个 activity 页面的 数据 bundle.putInt("age",18); bundle.putString("name","哈哈"); //把 要传输 的 一起 丢给 intent 带到 下一个 页面 intent.putExtras(bundle); //开始 跳转 int requestCode = 100;//startActivityForResult 方法 是 带返回结果的 跳转 startActivityForResult(intent, requestCode);//startActivity方法 是不带 返回的 结果的 跳转 // startActivity(intent); } //重写 一个 函数 (用于 其他 activity 的返回 到这个 activity 页面 的作用) @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);//requestCode -- 请求码 resultCode -- 结果码 if(requestCode == 100 && resultCode == 101){ //接收 activity 传输 过来的 数据 Bundle bundle = data.getExtras();//获取 键 -- 对应的值 String result = bundle.getString("back_data"); //把 返回 来的 数据 填 到 当前 MianActivity 的TextView 里 textview.setText(result); } }---------------------------------
4、在下一页NextActivity 实现 接收MainActivity 带(通过Bundle 对象)过来的数据
代码
public class NextActivity extends Activity {
private TextView textview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.nextactivity); //接收 MainActivity 发送 过来的 数据 Intent intent = getIntent(); //创建 一个Bundle 对象 接收MianActivity传输过来的Bundle对象//里面装了 要传输过来 的数据 Bundle bundle = intent.getExtras(); //获取 相应 键 -- 的值 int Mian_age = bundle.getInt("age"); String Mian_name = bundle.getString("name"); textview = (TextView) this.findViewById(R.id.textview); textview.setText(Mian_name + ":" + Mian_age); }//返回MainActivity的按钮 监听 public void back_mainactivity(View view){ Intent intent = getIntent();//第三步 //创建一个 Bundle 对象 用来 装 返回去 的数据 Bundle bundle = new Bundle();//第一步 //把 要 返回 的数据 装进去 bundle.putString("back_data", "从nextactivity回来了");//第二步 //通过 intent 来 传输 回去 intent.putExtras(bundle);//第四步 int resultCode = 101; setResult(resultCode , intent); //退出 当前Activity finish(); }