假设我正在制作类似测验的内容,并且我有一个计数器来显示已正确回答的问题数量。如果一个问题得到正确回答,并且显示了一个新屏幕(活动),我该如何将该号码转移到下一个屏幕?
答案 0 :(得分:5)
当你说屏幕时,你的意思是活动?然后你可能想要通过额外的意图传递它们。
活动1:
int score;
...
Intent Intent = new Intent(...);
intent.putExtra("score_key", score);
startActivity(intent);
活动2的onCreate()
:
int score;
...
Bundle extras = getIntent().getExtras();
// Read the extras data if it's available.
if (extras != null)
{
score = extras.getInt("score_key");
}
答案 1 :(得分:1)
您可以根据自己的意图在数据包中发送数字,字符串等。
Bundle b = new Bundle();
b.putInt("testScore", numCorrect);
Intent i = new Intent(this, MyClass.class);
i.putExtras(b);
startActivity(intent)
您还可以放置StringArrays和其他一些简单的变量
答案 2 :(得分:0)
您可以通过这种方式在整个项目中共享数据,
public class mainClass
{
private static int sharedVariable = 0;
public static int getSharedVariable()
{
return sharedVariable;
}
}
从其他类/活动中,您可以使用classname和直接访问它。 (点)运算符。例如mainClass.getSharedVariable();
答案 3 :(得分:0)
在Activitiys中存储变量的一个好方法是使用自己的Application Class实现。
public class MyApp extends android.app.Application {
private String myVariable;
public String getMyVariable() {
return myVariable;
}
public void setMyVariable(String var) {
this.myVariable = var;
}
在应用程序标记内的Manifest.xml中添加新类:
<application android:name="MyApp" android:icon="@drawable/icon" android:label="@string/app_name">
现在您可以按如下方式操作每个Activity中的变量:
MyApp ctx = (MyApp)getApplicationContext();
String var = ctx.getMyVariable();