You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio问题:从首个Activity传值后第二个Activity不显示姓名

Android Activity间传值后无法显示姓名的排查与解决

常见排查点与解决方案

1. 检查第一个Activity的传值逻辑

  • 确保通过Intent携带数据时,键名(KEY)统一且大小写敏感,示例代码:
// 获取输入框的姓名
String inputName = binding.etName.getText().toString().trim();
Intent intent = new Intent(this, SecondActivity.class);
// 用统一的键名传递数据
intent.putExtra("EXTRA_USER_NAME", inputName);
startActivity(intent);
  • 确认已调用startActivity(intent)启动目标Activity,遗漏此步骤会导致数据根本没传递。

2. 检查第二个Activity的取值与赋值逻辑

  • 用相同的键名获取数据,同时要做非空判断避免空指针或空白显示:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    TextView tvName = findViewById(R.id.tv_show_name);
    String receivedName = getIntent().getStringExtra("EXTRA_USER_NAME");
    
    // 非空判断,避免空白或崩溃
    tvName.setText(receivedName != null && !receivedName.isEmpty() ? receivedName : "未获取到姓名");
}
  • 确认findViewById的ID与布局文件中TextView的ID完全一致,ID不匹配会导致TextView未被正确初始化,赋值无效。

3. 检查布局文件细节

  • 确认第二个Activity布局中负责显示姓名的TextView存在,且ID正确;
  • 排查TextView的文字颜色是否与背景色一致,这种情况会导致内容存在但肉眼不可见。

示例完整代码

第一个Activity(MainActivity)

public class MainActivity extends AppCompatActivity {
    private EditText etName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        etName = findViewById(R.id.et_input_name);

        Button btnSubmit = findViewById(R.id.btn_submit);
        btnSubmit.setOnClickListener(v -> {
            String userName = etName.getText().toString().trim();
            Intent intent = new Intent(MainActivity.this, SecondActivity.class);
            intent.putExtra("EXTRA_USER_NAME", userName);
            startActivity(intent);
        });
    }
}

第二个Activity(SecondActivity)

public class SecondActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        TextView tvDisplay = findViewById(R.id.tv_display_name);
        String name = getIntent().getStringExtra("EXTRA_USER_NAME");
        tvDisplay.setText(name != null ? name : "无姓名数据");
    }
}

内容的提问来源于stack exchange,提问作者Abhinav Thakur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:55:14