如何将API响应传递至新Activity?Intent传值为空问题求解
解决Intent传值为空及整数解析问题
我一眼就发现问题所在啦,咱们一步步来修复:
1. 核心错误:Calculation中获取Intent的方式不对
你在Calculation.java里新建了一个空的Intent,而不是获取启动当前Activity的那个携带数据的Intent!正确的做法是用getIntent()方法来获取。
2. 补充MainPage中缺失的启动Activity代码
你的MainPage.java里只创建了Intent并添加了数据,但没有调用startActivity()来启动Calculation,这也是数据传不过去的关键原因之一!
修正后的完整代码
MainPage.java
public void onResponse(String response) { System.out.println("output -- "+response); String members = response; Intent intn = new Intent(MainPage.this, Calculation.class); intn.putExtra("MEMBERS", members); // 一定要加上这句,启动目标Activity startActivity(intn); }
Calculation.java
// 获取启动当前Activity的Intent,而不是新建空的 Intent intn = getIntent(); String members = intn.getStringExtra("MEMBERS"); System.out.println("dmkmdk" + members); // 安全解析为整数,避免格式错误导致崩溃 int no_of_members = 0; if (members != null && !members.isEmpty()) { try { no_of_members = Integer.parseInt(members); } catch (NumberFormatException e) { // 处理字符串无法转成整数的情况,比如提示用户或者设置默认值 e.printStackTrace(); } }
额外注意事项
- 确保
MEMBERS这个key在两个Activity中完全一致(大小写敏感) - 如果API返回的响应可能包含非数字字符,一定要用try-catch包裹解析逻辑,防止App崩溃
内容的提问来源于stack exchange,提问作者user6914996
相关产品推荐
相关产品推荐

