android getint,getIntExtra始终返回默认值

问题是info.id将是’long’并且不会转换为’int’。 尝试

long iSelectedItem = intent.getLongExtra("selectedItem", -1)

我没有findputIntExtra()方法。 所以我最终得到了以下内容:

intent.putExtra("jobId", 1);

Integer.parseInt(getIntent().getExtras().get("jobId").ToString());

使用try和catch来处理exception。

UPDATE

后来我发现我在putExtra()方法putExtra() jobId作为字符串传递,因此getIntExtra()始终返回默认值。

所以@Grant是正确的。 您必须在putExtra()方法中传递Integer值才能使用getIntExtra()方法。

我遇到了这个问题,这很简单。

检查你是否使用onActivityResult …而不是使用getIntent()获取额外内容,你必须使用你传递的intent作为参数。

在你的情况下应该是这样的:

public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (resultCode == RESULT_OK) { int iSelectedItem = intent.getIntExtra("selectedItem", -1); Log.d("DEBUG", "check iSelectedItem = " + iSelectedItem); } }

观察我没有使用getIntent(),而是使用了参数intent。

(PS:如果你要调用很多期望结果的活动,最好检查意图是否为!= null)

我希望它有所帮助。

简单:

Bundle bundle = getIntent().getExtras(); int iSelectedItem = bundle.getInt("selectedItem", -1);

现在,如果您正在使用StartActivityForResult并且想要从子活动返回一些数据,则提醒您必须使用onActivityResult

public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (resultCode == RESULT_OK) { int iSelectedItem = intent.getExtras.getInt("selectedItem", -1); Log.d("DEBUG", "check iSelectedItem = " + iSelectedItem); } }

请记住,就像从其他Activity获取额外内容一样,只需使用bundle.getInt,在此示例中,getExtras返回一个包,因此,在此包中,您可以获取从resultIntent发送的任何数据。

在我的例子中,这是因为我使用声明为string的mId成员variables创建了对象

public class Application { private String mId; .... } intent.putExtra("id", myApplication.getId());

因此,Extra以字符串forms传递。 只需将您的成员variables更改为int,您就会明白;)

int sub_menu_id = 0; int question_part = 0; if (savedInstanceState == null) { Bundle extras = getIntent().getExtras(); if (extras == null) { sub_menu_id = -1; question_part = -1; } else { sub_menu_id = extras.getInt("sub_menu_id"); question_part = extras.getInt("question_part"); } } Log.d("DREG", "sub_menu_id: " + sub_menu_id + "\nquestion_part: " + question_part);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值