【问题标题】:Android: Is it possible to take user input and display it back?Android:是否可以接受用户输入并将其显示回来?
【发布时间】:2012-11-08 04:19:58
【问题描述】:

我是新手,但我正在尝试接受用户输入(即用户名),然后通过 textView 在不同的活动中显示它(即显示将显示“这是'用户名的举动”)。

我不确定是否可以通过将用户输入分配给 java 文件中的字符串,然后按照我的意图传递数据,或者我是否必须使用某种形式的存储来做到这一点。

无论哪种方式,我仍然对如何将其返回到要显示的 .xml 文件中的字符串感到困惑。

任何帮助将不胜感激:) 干杯

【问题讨论】:

  • 您想在其他活动中显示用户名吗?还是您还希望将其保存到应用程序中?这意味着即使您关闭应用程序,当您返回时,用户名仍然存在。到目前为止,您尝试了什么?
  • 有可能。您可以通过意图传递字符串。请参阅此链接。 stackoverflow.com/questions/4114443/…stackoverflow.com/questions/2091465/…。那里也有人问类似的问题。

标签: android string input show


【解决方案1】:

正如 cmets 中所指出的,您应该了解 Intent 是什么。您可以在here 阅读有关它们的信息。作为一个非常简短的例子:

Intent launchNewActivity = new Intent(this, NewActivity.class);
launchNewActivity.putExtra("Some key", "Some value"); //sometimes you want to pass extra data
startActivity(launchNewActivity);

另外,了解strings.xml 的用法也很好,例如explained here。基本上,它用于定义不会被硬编码的常量,您可以在代码中调用。它们可以帮助您保持代码井井有条,还可以帮助您轻松地将应用程序翻译成其他语言。同样,一个简单的例子如下所示:

<resources>

    <string name="OK">OK</string>
    <string name="cancel">Cancel</string>

    <!-- Validation error messages for EditText -->
    <string name="editText_validation_error_empty_field">The field cannot be empty.</string>
    <string name="editText_validation_error_numbers_only">Only numbers are allowed on this field.</string>
</resources>

【讨论】:

    【解决方案2】:

    我认为最好的方法是使用共享首选项。它正是为了这样的事情。 你就是这样做的:

    SharedPreferences prefs = getSharedPreferences("prefs", 0); 
    SharedPreferences.Editor editor prefs.edit();
    

    现在,每次你想改变你所做的字符串:

    editor.putString("user_name", "jon").commit();
    

    “user_name”是字符串的名称,“jon”是内容。所以你可以像这样保存名字和姓氏:

    editor.putString("user_name", "jon")
    editor.putString("last_name", "dow").commit();
    

    不要忘记将“commit()”放在最后。 每次你想得到你可以使用的字符串时:

    String Name = prefs.getString("user_name", "");
    String LastName = prefs.getString("last_name", "");
    

    这样做的好处是它被保存了。因此,下次用户打开应用程序时,您仍然可以获取字符串,而无需再次使用它来让用户再次输入:

    String Name = prefs.getString("user_name", "");
    String LastName = prefs.getString("last_name", "");
    

    就这么简单。希望你明白了。

    【讨论】:

    • 感谢您的提示。虽然也许我应该用不同的措辞来表达我的问题。我很确定这是一个如何在共享首选项中存储数据的示例(这很好,因为这证实了我怀疑这是存储信息的最佳方式)但是我的问题的真正核心是如何显示这些数据一旦存储?有什么想法吗?我的印象是必须通过 xml 文件来显示任何类型的文本(使用字符串文件,以便应用程序可以在需要时更改语言)。那你怎么从java转到xml呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2020-11-04
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多