Android|用户注册案例下的Activity数据传递

筅森魡賤 提交于 2020-02-28 13:00:24

思路分析

  在源 Activity 使用一个容器存放需要传递的数据,然后把这个容器传递给目标目标 Activity,获取数据。因为有查找需求,所有这个容器一定是 map 结构。Bundle对象就可以充当这个容器。Bundle:A mapping from String keys to various {@link Parcelable} values.

传递步骤

  1. 将数据存入到 Bundle对象中。
  2. 将 Bundle 对象放入到 Intent 对象中。
  3. 跳转到的 Activity 获取Intent 对象,拿到其中的 Bundle对象,然后获取数据。

以用户注册为例

用户输入用户名和密码,点击注册后跳到数据展示页面

public class RegisterActivity extends AppCompatActivity {

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

    }

    /**
     * 注册
     * @param v
     */
    public void register(View v) {
        //获取用户名和密码的EditText对象
        EditText usernameView= findViewById(R.id.username);
        EditText passwordView= findViewById(R.id.password);
        //获取内容
        String username = usernameView.getText().toString().trim();
        String password = passwordView.getText().toString().trim();
        //把数据放入bundle中
        Bundle bundle = new Bundle();
        bundle.putString("username",username);
        bundle.putString("password",password);
        //设置要跳转到的activity
        Intent intent = new Intent();
        intent.setClass(this, ShowParamActivity.class);
        //把bundle放入intent中
        intent.putExtras(bundle);
        //执行跳转
        startActivity(intent);
    }
}
public class ShowParamActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_param);
        //获取存储用户名和密码
        Bundle bundle = getIntent().getExtras();
        String username =  bundle.getString("username");
        String password =  bundle.getString("password");
        //显示在屏幕上
        String showOnToast = "username=" + username + "&password=" + password;
        Toast.makeText(this, showOnToast, Toast.LENGTH_SHORT).show();
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!