【问题标题】:passing string to another activity without using intent extras in Android将字符串传递给另一个活动而不使用 Android 中的意图附加功能
【发布时间】:2013-06-24 23:45:34
【问题描述】:

我可以在不使用意图的情况下将字符串传递给 Android 中的另一个活动吗? 我在使用意图附加功能时遇到了麻烦... 它们似乎并不总是有效! 那么,有没有其他办法呢?

我尝试过的意图:

String id = intent.getStringExtra("id");
String name = intent.getStringExtra("name");

但是每次我开始活动时它都会得到两种字符串。第一次与其他时间不同。 我可以在不使用意图的情况下传递第二个活动吗?

【问题讨论】:

  • 除了使用SharedPreferences 或数据库来保存字符串之外,答案是否定的,没有其他方法。此外,如果您无法使用用于启动ActivityIntent 中的附加功能使事情正常工作,那么您做错了——这不是Intents 工作方式的错。发布代码并解释发生了什么 - 你显示的两行没有告诉我们任何事情。
  • 尝试使用共享首选项。看看这个,会有很大帮助的。 stackoverflow.com/questions/3624280/…
  • Squonk,问题是,我的代码超过 2000 行,所以我不能在这里分享它,但我在这里问它,因为我认为可能有比使用意图更好的方法,正如你说的不是真的……

标签: android android-intent android-activity


【解决方案1】:

还有其他方法,但 Intent 的附加功能是可行的方法。他们实际上总是很好地工作:) 最好留在这条路上并学习如何正确使用 Intents。

向另一个活动发送字符串的示例:

    Intent intent = new Intent(this, SecondActivity.class);
    intent.putExtra("aKey", value);
    startActivity(intent);

并在第二个活动中检索它。

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
    Intent i = getIntent();
    if (i.hasExtra("aKey")){
         String value = i.getStringExtra("aKey");   
    }
}

请继续努力做到这一点。

【讨论】:

  • 谢谢,我想这是唯一的出路,我必须做到这一点。问题是,既然我的代码真的很长而且很复杂,很难调试为什么意图不能正常工作,更重要的是,为什么它只第一次不能正常工作!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
相关资源
最近更新 更多