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

思路分析

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

传递步骤

  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();
    }
}

你可能感兴趣的:(Android)