问题描述
我正在尝试在android studio中创建我的第一个应用程序,在主屏幕上有三个刻度框,询问用户他们想要在骰子上的哪几个面。 我有一个名为sides的变量,它根据用户打勾的复选框设置为6,8或12。 我希望在第二个活动中使用变量“ sides”,以便可以使用它在一个和设置为“ sides”的变量之间生成随机整数。
1楼
在第一个活动中,假设您具有按钮GO。 当您单击Button GO时,它应该启动Second Activity,说Activity2。 将以下代码添加到GO按钮的onClick
Intent act2=new Intent(this,Activity2.class);//"this" is activity reference
act2.putExtra("key",value);
startActivity(act2);
现在,在Activity2的onCreate方法中,您可以按以下方式检索键的值:
Int key=getIntent().getIntExtra("key",0);//0 is default value
与上述操作相同,您可以将“ side”变量的值传递给下一个活动
2楼
您还可以将其保存在内部存储器中,并在需要时加载它,这非常有用,因为这样您就可以在每个活动和所需的每个类中加载它。
您可以学习如何。
我建议看全部三个部分。
3楼
您可以使用SharedPreferences,
要获取共享的首选项,请在您的活动中使用以下方法:
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
要阅读首选项:
String dateTimeKey = "com.example.app.datetime";
// use a default value using new Date()
long l = prefs.getLong(dateTimeKey, new Date().getTime());
编辑和保存首选项
Date dt = getSomeDate();
prefs.edit().putLong(dateTimeKey, dt.getTime()).apply();
android sdk的示例目录包含一个检索和存储共享首选项的示例。 其位于:
<android-sdk-home>/samples/android-<platformversion>/ApiDemos directory
4楼
最简单的方法是使用单例类。
public class DataHolder {
public int sides = 0;
private static DataHolder dataHolder = new DataHolder();
public static DataHolder getInstance()
{
return dataHolder;
}
}
DataHolder.getInstance().sides=sideInActivityA;
您可以使用int sideInActivityB = DataHolder.getInstance().sides;
访问变量int sideInActivityB = DataHolder.getInstance().sides;
5楼
这可以通过静态全局变量或可以通过继承该类的公共变量来完成。 但是,导入全局静态类的功能相同。