设置从活动到其他活动的公共整数

时间:2016-03-12 19:00:27

标签: android variables

在我的第一个活动中,我有这个代码(这是一个Button的onCLick事件):

  public void uno(View v)
   {
    Partita p = new Partita();
    p.cont = 1;
    p.puntiCategoriaG1 = 20;
    p.puntiCategoriaPC = 15;

    Intent i = new Intent(this, Partita.class);
    startActivity(i);
    finish();
  }

在第二节/活动中我设置了它们:

public class Partita extends Activity {
   public int cont;
   public int puntiCategoriaG1;
   public int puntiCategoriaPC;
   @Override
   public void onCreate(....

但是当我在代码中使用它们时,它的值为0.我该如何解决?

3 个答案:

答案 0 :(得分:3)

您应该在Intent

中添加参数
public void uno(View v) {
    Intent i = new Intent(this, Partita.class);
    i.putExtra("cont", 1);
    startActivity(i);
}

现在,在您的第二个Activity中,您可以检索它:

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    int cont = getIntent().getExtras().getInt("cont", 0);
    Log.d("TAG", cont);
}

在启动之前,您不必创建Partita活动的实例。

Partita p = new Partita();
p.cont = 1;
p.puntiCategoriaG1 = 20;
p.puntiCategoriaPC = 15;

当您致电startActivity(i);时,您不会启动此创建的对象。 Android构建并显示Activity本身。要将一些参数传递到第二个Activity,请将它们添加到Intent中,如上所述。

答案 1 :(得分:0)

看看你什么时候开始活动你只需要传递.class即与Partita.java相关的Class.java的对象。 您不应该创建Activity的对象。你只需启动它,它就是Android框架,它负责创建对象并调用活动的生命周期方法。 您使用Intent.java的Objecy来启动一个活动。 为了将数据从一个活动传递到另一个活动,我建议您在Intent.java中研究putExtra方法。还要研究如何在Bundel中包装数据,然后研究如何将它传递给用于启动新活动的Intent对象。

答案 2 :(得分:0)

Android活动与普通课程不同。即:您没有专门创建实例。您只需创建一个意图启动特定活动的Intent。操作系统负责初始化新活动的实例。

在活动之间传递数据与在类中传递数据不同。请检查this post,看看它是如何完成的。