安卓---第四章---上课代码---Activity

总结:

  1. Intent的功能:
    Intent被称为意图,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
  2. 显示意图:
    在这里插入图片描述
  3. Activity之间的数据传递方式
    Intent可以在界面跳转时传递数据。
    使用Intent传递数据有两种方式。
    1. 使用Intent的putExtra()方法传递数据(见案例1)
      在这里插入图片描述
    2. 使用Bundle类传递数据(见案例2)
      在这里插入图片描述
  4. Activity之间的数据回传方式
    实现结果:在这里插入图片描述
    Activity之间进行数据回传时,包含3个方法,分别是:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

案例1:

实验结果:

  1. 刚打开是主界面activity_main
    在这里插入图片描述
  2. 点击按钮,进入activity_four界面
    在这里插入图片描述
  3. 点击第一个按钮,获得main界面传来的信息,并显示
    在这里插入图片描述

FourMainActivity.java

public class FourMainActivity extends AppCompatActivity {
    private Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_four_main);
        initView();
    }

    private void initView() {
        btn1 = findViewById(R.id.main_btn);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(FourMainActivity.this, MyFourActivity.class);
                //等价于
                //Intent intent = new Intent();
                //intent.setClass(FourMainActivity.this,MyFourActivity.class);
                intent.putExtra("aa", "第一个页面的值");
                intent.putExtra("bb", 789);
                //putExtra():在MainActivity中将数据传递给MyFourActivity.class
                startActivity(intent);
            }
        });
    }
}

MyFourActivity.java

public class MyFourActivity extends AppCompatActivity {
    private TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_four);
        initView();
    }
    public void initView() {
        textView = findViewById(R.id.tv_1);

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = getIntent();
                String aa = intent.getStringExtra("aa");
                int bb = intent.getIntExtra("bb",0);
                //get...Extra():在MyFourActivity中获取MainActivity传递来的数据
                textView.setText(aa + bb);
            }
        });
    }
}

案例2:

实验结果:

实验结果与案例1一致,只是传递数据的方式不同了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

FourMainActivity.java

public class FourMainActivity extends AppCompatActivity {
    private Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_four_main);
        initView();
    }

    private void initView() {
        btn1 = findViewById(R.id.main_btn);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(FourMainActivity.this, MyFourActivity.class);
                Bundle bundle = new Bundle();
                bundle.putString("cc","qqqqqqqqqqq");
                bundle.putInt("cv", 45612);//将数据封装到Bundle对象中
                intent.putExtras(bundle);
                startActivity(intent);
            }
        });
    }
}

MyFourActivity.java

public class MyFourActivity extends AppCompatActivity {
    private TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_four);
        initView();
    }
    public void initView() {
        textView = findViewById(R.id.tv_1);

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Bundle extras = getIntent().getExtras();
                String cc = extras.getString("cc");	//通过Bundle对象获取用户名信息
                int cv = extras.getInt("cv");
                textView.setText(cc + cv);
            }
        });
    }
}

案例3:

实验结果:

启动程序,进入主界面:
在这里插入图片描述
点击主界面的按钮,进入MyFourActivity界面:
在这里插入图片描述
点击第一个TextView,回传数据:
在这里插入图片描述

FourMainActivity.java

public class FourMainActivity extends AppCompatActivity {
    private Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_four_main);
        initView();
    }

    private void initView() {
        btn1 = findViewById(R.id.main_btn);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(FourMainActivity.this, MyFourActivity.class);
                //1001为请求码,自定义
                startActivityForResult(intent, 1001);

                Bundle extras = getIntent().getExtras();
                if (extras == null) {
                    Log.e("222", "没有数据");
                } else {
                    String cc = extras.getString("cc");
                    int cv = extras.getInt("cv");
                    Log.e("222", cc + cv);
                }
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1001 && resultCode == 1002) {
            String str = data.getStringExtra("str");
            btn1.setText(str);
            Log.e("vv", "" + str);
        }
    }
}

MyFourActivity.java

public class MyFourActivity extends AppCompatActivity {
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_four);
        initView();
    }

    public void initView() {
        textView = findViewById(R.id.tv_1);

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                intent.putExtra("str", "计科4班");
                setResult(1002, intent);
                finish();   //关闭MyFourActivity这个界面
            }
        });
    }
}

布局文件

activity_four_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity_one.FourMainActivity"
    android:orientation="vertical">

    <Button
        android:id="@+id/main_btn"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:text="我是主界面的按钮"
        android:textSize="35sp"
        android:background="@drawable/bg_0"
        android:textStyle="bold"
        />

</LinearLayout>

activity_my_four.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity_one.MyFourActivity"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_1"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:background="#FFFED6D6"
        android:text="我是第一个TextView"
        android:textStyle="bold"
        android:textSize="35sp"
        android:gravity="center"
        />
    <TextView
        android:id="@+id/tv_2"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:text="我是第二个TextView"
        android:textStyle="bold"
        android:textSize="35sp"
        android:gravity="center"
        android:background="#FFADD7F8"
        />
</LinearLayout>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值