我的程序包含一个MainActivity和两个片段活动。我需要一个片段从用户获取String值并将其传递给第二个片段。
我试图围绕如何做到这一点。由于我熟悉意图,我在另一篇文章中找到了this answer,并决定尝试一下。一切都很好,直到我进入第4步,当我尝试在我的第二个片段中使用Intent i = getIntent();
时,Studio不会让我使用它并说"getIntent(java.lang.String) is deprecated"
。
这对我来说没有意义,因为我在其他程序中使用getIntent()
没有问题,并且让我在我的MainActivity
中使用它(来自另一篇文章的第2步)而没有尖叫对我。
我知道这可以在不使用意图的情况下完成,但我无法弄明白,也无法找到任何真正完整的教程。所以我想我的问题是:
答案 0 :(得分:1)
将Object从Activity传递给Java类时遇到同样的问题。我没有理由给这个问题一个downVote。这是我做的事。
此活动发送数据
Salaray newSalary = new Salary();
Intent intent = new Intent(ViewData.this,Data.class);
intent.putExtra("SalaryObj", newSalary);
收到数据(In Data.class)
我试过这个,但Android Studio说 getIntent 已弃用了Intent intent = Intent.
getIntent();
那么我可以使用什么代替getIntent()
,因为我在互联网上找到的所有解决这个问题的解决方案都使用getIntent()
。
修改强>
我正在玩这个,发现我试图在Java Class(非活动)中接收数据。但是当我在Activity中使用它时,它工作正常。但它让我想到另一个问题,即如何将数据从Activity发送到Java类(这不是一个Activity)。
答案 1 :(得分:0)
这意味着,在进一步的版本中无法支持此方法。该方法仍然在API中,用于在不确定的时间内向后兼容。大多数情况下使用弃用的方法是危险的,或者有更好的方法来实现这一点。 就像描述here
一样在这种情况下,您应该使用:parseUri(String, int)
来实现此目标(根据android developer api)。
答案 2 :(得分:0)
在您的 onCreate 上
val bundle = intent.extras
if (bundle != null) {
idEmployee = bundle?.getString("idEmployee", "")
idClient = bundle?.getString("idClient", "")
listAvailable = bundle?.getStringArrayList("listAvailable") as ArrayList<String>
Log.i("list:", "$listAvailable" )
}