繁体   English   中英

如何从活动的EditText获取值以在另一个活动上使用它?

[英]How to get value from EditText on the activity to use it on another activity?

像这样从EditText(editProtein)获得价值

protected void protein() {
    EditText editCalorie = (EditText)findViewById(R.id.editCalorie);
    double pro = Double.parseDouble(editCalorie.getText().toString());
    EditText editProtein = (EditText)findViewById(R.id.editProtein);
    editProtein.setText(Double.toString(pro * 0.25 * 4));
}

在活动上使用它在另一个活动上? 我应该在活动和其他活动上使用什么代码,谢谢

您可以在不同的Activity类之间共享数据的方式有很多种。 实际操作方式取决于您的特定应用程序以及数据应具有的生存时间。

第一种方法是通过putExtras()方法将其传递给您从第一个Activity启动的新Activity ,以将任意信息发送到另一个活动。 要启动第二个Activity ,您使用一个Intent ; 您正在做的是打包一些其他任意数据(在这种情况下,也许是您的蛋白质原料):

Bundle bundle = new Bundle();
bundle.putString(“some_protein_stuff″, textStringFromYourEditText);

Intent newIntent = new Intent(this.getApplicationContext(), ActivityClass2.class);
newIntent.putExtras(bundle);
startActivityForResult(newIntent, 0);

在ActivityClass2上,我们可以使用以下语法读取此参数:

Bundle bundle = this.getIntent().getExtras();
String param1 = bundle.getString(“some_protein_stuff″);

但是,作为替代方案,您可能不希望考虑使用Shared Preferences ,而不是在调用数据时将数据传递给新的Activity 通过这种机制,您可以通过键值对非常轻松地在应用程序中存储数据。 如果您有可能想要在各种其他Activity类中使用用户通过EditText输入的值,并且还希望在应用程序关闭并稍后再次打开时使用相同的值,则它仍然可用您只需将其从共享首选项中拉出即可。 首选项非常易于使用,并且有关于SO或其他地方的各种教程。

作为另一种选择,您可以考虑通过创建扩展android.app.Application的类或“创建Singleton类”来实现“全局”共享数据,从而获得与之类似的结果。

在启动新的Activity时,将数据与Intent捆绑在一起的第一个最明显的解决方案可能就是您所追求的,但是后两个建议也可能会引起您的兴趣,这取决于您的应用程序如何工作以及您希望数据如何被使用坚持。

您可以将值传递给另一个活动。 就像是:

intent.putExtra("CALORIE", calorie);
intent.putExtra("PROTEIN", protein);

与此对应,在要使用这些值的活动中,使用类似以下内容的方法:

Bundle extras = getIntent().getExtras();
if(extras !=null) {
    double calorie = extras.getDouble("CALORIE");
    double protein= extras.getDouble("PROTEIN");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM