【问题标题】:How to Use Intent to pas Data through Activities in android studio [closed]如何使用 Intent 通过 android studio 中的活动传递数据 [关闭]
【发布时间】:2020-06-17 05:42:44
【问题描述】:

我必须传递一个整数

startActivity(Intent(intent));

但我不知道正确的语法来实现,我尝试了我能做的,但默认值没有改变。

我怎样才能解决我的测验 ID 永远不会改变的事实??

【问题讨论】:

  • 请不要发布代码、XML 或日志的屏幕截图。请将所有文本作为文本发布。
  • 试试改成startActivity(intent)
  • @ST 我刚刚做了,但没有任何改变
  • 当你获得价值时,var Quiz_id:Int = intent.getIntExtra("Quiz_id",0)

标签: android android-studio kotlin android-intent


【解决方案1】:

就我所见,您正在为同一个活动创建意图,而不是为您传递价值的活动。几乎没问题,您只需要在第一个活动中在onItemClick 中执行此操作即可:

val quizIntent = Intent(this, QuizView::class.java)
intent.putExtra("QuizID", position)
startActivity(quizIntent)

QuizViewonCreate() 方法中做:

val quizId = intent.getIntExtra("QuizID", -1) // -1 is default value, so -1 would mean you didn't pass position properly or at all

【讨论】:

  • 我看到您正在QuizView 活动中创建新的 Intent。不要那样做。在setContentView 之后写val quizId = intent.getIntExtra("QuizID", -1)
【解决方案2】:

试试这个

val intent = Intent(this, QuizView::class.java)
intent.putExtra("QuizID", position)
startActivity(intent)

在接收端

val quizId = intent.getIntExtra("QuizID")

【讨论】:

  • 它告诉我未解决的参考:getExtra
  • 好的,你用我的方式尝试了同样的 getIntExtra 吗?
  • 使用getIntExtra时需要额外的参数
【解决方案3】:

如果你想传递点击的位置

 Intent profileIntent = new Intent(YourActivity.this, DestinationActivity.class);
                profileIntent.putExtra("Quiz_id", postion);
                startActivity(profileIntent);

并在创建写入后在 DestinationActivity 上接收该项目

final String Quiz_id = getIntent().getStringExtra("Quiz_id");

这样您将检索点击的位置,您可以进一步使用它。

【讨论】:

  • 但它不是字符串?
  • 是的,但您可以像使用字符串一样使用它,并将其转换为 int 或 long 任何您想要的内容,然后再使用它,这样可以轻松地将信息从一个活动传输到另一个活动
猜你喜欢
  • 2021-09-08
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
相关资源
最近更新 更多