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

Android中putExtra传整数但getIntent取值失败问题求助

嘿,我来帮你搞定这个整数传递的问题!文本能传成功说明Intent的基本逻辑是通的,大概率是整数传递/接收的细节没做对,咱们一步步来:

第一步:修正第一个Activity的发送代码

把你按钮点击事件里的Intent代码调整成这样,确保整数用正确的方式传递:

// 按钮点击事件内的代码
Button sendBtn = findViewById(R.id.your_button_id);
sendBtn.setOnClickListener(v -> {
    // 替换成你实际要传递的文本和整数
    String textToSend = "测试传递的文本";
    int intToSend = 999;

    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
    // 传递文本,自定义key(比如"KEY_TEXT"),后续接收要对应
    intent.putExtra("KEY_TEXT", textToSend);
    // 传递整数,用专门的int类型putExtra重载,key比如"KEY_INT"
    intent.putExtra("KEY_INT", intToSend);
    
    startActivity(intent);
});
第二步:确保第二个Activity的接收代码正确

这一步是最容易踩坑的地方,一定要注意类型匹配和key一致:

// SecondActivity的onCreate方法内
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    TextView textView1 = findViewById(R.id.textView1);
    TextView textView2 = findViewById(R.id.textView2);

    Intent receivedIntent = getIntent();
    if (receivedIntent != null) {
        // 获取文本,key要和发送端完全一致
        String showText = receivedIntent.getStringExtra("KEY_TEXT");
        // 获取整数:用getIntExtra,第二个参数是默认值(防止没传值时崩溃)
        int showInt = receivedIntent.getIntExtra("KEY_INT", 0);

        // 显示到TextView
        textView1.setText(showText);
        // 重点!整数必须转成字符串再设置,否则会被当成资源ID
        textView2.setText(String.valueOf(showInt));
    }
}
你可能踩中的几个常见坑
  • key不匹配:发送端的"KEY_INT"和接收端的拼写、大小写必须完全一致,差一个字符都拿不到值
  • 接收方法错了:如果用getStringExtra去取整数,会返回null,导致TextView显示空或者崩溃,一定要用getIntExtra
  • 整数直接setText:TextView的setText(int)会把数字当成字符串资源ID去查找,必须转成字符串再设置(比如String.valueOf(showInt))
  • 没加默认值:如果发送端意外没传整数,getIntExtra不加默认值会抛出异常,加上默认值更安全

对照自己的代码排查一下,大概率是上面某一个细节没处理好~

内容的提问来源于stack exchange,提问作者mayyar santeha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:26:24