【问题标题】:Getting intger from another activity从另一个活动中获取整数
【发布时间】:2014-09-26 12:48:04
【问题描述】:

我正在尝试从另一个活动中获取变量整数

我的代码:

------- Activity --------

public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    Intent intent = new Intent(Question.this, Answer.class);
    intent.putExtra("id", position);

    startActivityForResult(intent, position);
}



protected void onActivityResult(int requestCode, int resultCode, Intent i) {

    int pos = ------- "I'm trying to get the position in this activity or pos in the other activity." ------- 

    if(pref.getBoolean("answered"+pos, false)){
           ------ Do Something --------
    }

}

这是在另一个活动中,我试图从第一个活动中获取位置或从这个​​活动中获取位置。

Intent intent = getIntent();
pos = (int) intent.getExtras().getInt("id");

我正在尝试获取 onActivityResult 中的 pos 中的 int

有可能吗?

更新

我通过添加修复它

onActivityResult(position, position, intent);

【问题讨论】:

  • 是的,您的代码是正确的 pos = intent.getExtras().getInt("id");您通过此代码获得 pos
  • 你不应该使用intent.getIntExtra("id", 0)吗?
  • @DivyangMetalia 我试过了,没用
  • @StavL 改变你的行 pos = intent.getIntExtra("id", 0);

标签: android android-intent int


【解决方案1】:

试试这个:

在第一个活动中

String pos = String.valueOf(position);
intent.putExtra("id", pos);

活动中

String id= intent.getStringExtra("id");
int pos= Integer.parseInt(id);

希望对您有所帮助!

【讨论】:

  • Krupa,我觉得他应该做 String id= intent.getIntExtra("id",0);
  • 我正在尝试从其他活动中的位置或位置获取 pos,这不起作用
  • 这很好用,但是我正在尝试获取 onActivityResult 中的 pos 中的 int
【解决方案2】:

getIntent() 将为您提供整个活动的意图。但在您的情况下,您希望从作为 onActivityResult 方法中的一个参数的意图中获得价值。

这样做

pos = (int) i.getExtras().getInt("id");

根据你的方法,意图变量是 i

protected void onActivityResult(int requestCode, int resultCode, Intent i)  

【讨论】:

  • 谢谢!这很好用,但是当我执行“if(pref.getBoolean("answered"+pos, false))”时它没有做任何事情
  • 你没有为 pref 写任何东西。分享它的代码。另外,如果条件,您会遇到什么错误,请分享您的 logcat。
  • 没有错误,唯一错误的是,如果它是真的,它并没有做我想让它做的事情。
  • 正如我所说的共享代码,那么只有我们才能告诉你任何事情。代码也应该包含 pref 的声明
【解决方案3】:

有一个名为getIntExtra()的方法用于从intent接收int值..

您可能应该使用它而不是使用 getStringExtra()...

因为 getStringExtra() 不会将 **int 转换为 String** 并且您的变量将为空...

所以你应该试试下面的代码...

Intent intent = getIntent();
if(intent.getExtras() != null)
{
    pos = (int) intent.getIntExtra("id",0); // zero( 0 ) is default value... 
}

编辑:

如果您在 OnActivityResult() 中获得价值 你应该试试……

protected void onActivityResult(int requestCode, int resultCode, Intent i) {

    i = i.getData();
    int pos = i.getIntExtra("id",0);
    }

}

【讨论】:

  • 这很好用,但是我正在尝试获取 onActivityResult 中的 pos 中的 int
  • 我通过添加 onActivityResult(position, position, intent); 来修复它
猜你喜欢
  • 2012-10-22
  • 2018-11-17
  • 2015-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
相关资源
最近更新 更多