在 ANDROID 中解析一个意图

PARSE AN INTENT IN ANDROID

我在 Main_Screen.class 有这个代码:

    add_btn.setOnClickListener(new View.OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
            Intent add_user = new Intent(Main_Screen.this, Add_Update_User.class);
            add_user.putExtra("called", "add");
            add_user.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(add_user);
            finish();
        }
    });

我的理解是,我正在向 "Add_Update_User.class" 发送存储在 "called" 中的字符串 "add" 和标志

现在,我在 "Add_Update_User.class" 有这段代码:

    String called_from = getIntent().getStringExtra("called");
    if (called_from.equalsIgnoreCase("add")) 
    {
        add_view.setVisibility(View.VISIBLE);
        update_view.setVisibility(View.GONE);
    } 
    else 
    {
        update_view.setVisibility(View.VISIBLE);
        add_view.setVisibility(View.GONE);
        USER_ID = Integer.parseInt(getIntent().getStringExtra("USER_ID"));
        Contact c = dbHandler.Get_Contact(USER_ID);

        add_name.setText(c.getName());
        add_mobile.setText(c.getPhoneNumber());
        add_email.setText(c.getEmail());
    }

我在 "Add_Update_User.class" 中的理解 我在 Intent 中获取从 "Main_Screen.class" 发送的值,将值 "add" 存储在字符串 "called_from" 中,然后它将 "called from" 与字符串 "add" 进行比较,如果比较为真,则视图变为可见并消失,但如果不为真,则设置视图的可见性,我的问题如下:

代码的这一部分到底是什么?

    USER_ID = Integer.parseInt(getIntent().getStringExtra("USER_ID"));

确实,您正在通过 Intent 将 "add" 值从 main_screen 发送到 add_update_user。

除了您提取的用户 ID 是一个字符串之外,您指向的那一行是相同的。但是,您的变量 USER_ID 可能是 "int" 类型。

因此你的 main_screen 中应该有类似

的内容
add_user.putExtra("USERID", "the id of the user you want to put");

你用

检索它
 getIntent().getStringExtra("USER_ID")

然后将字符串解析为整数,以匹配 user_id 与 Integer.parseInt(...)

的类型

因此你需要问自己的真正问题是为什么你没有函数 add_user.putExtra("USER_ID",...) 如果你不需要它那么你可以删除该行你关心的。