在我的第一个活动中,我有这个代码(这是一个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.我该如何解决?
答案 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,看看它是如何完成的。