Android的:不能传递变量为第三个活动 [英] Android: can't pass variable to a third activity
问题描述
我有三个活动:
- 登录
- 选择
- 输入
我必须通过从登录到选择的VAR名称(这个工作做好),然后从选择项,这是我有问题:/我可以通过名称来选择,但是当我尝试将它传递给入门,我不能!这很奇怪,因为如果我直接从登录入口传递变量,它的工作原理:/ 所以:
I Must pass the var "Name" from login to choice (and this work well) and then,from choice to entry,and this is where i have the problem :/ I can pass name to choice,but when i try to pass it to entry,i can't! It's strange because if I pass the variable directly from login to entry, it works :/ So:
- 登录 - >项作品
- 登录 - >选择作品
- 选择 - >项没有作品
这是在code,从登录传递到选择
This is the code to pass from login to choice
Intent intent;
String pkg=getPackageName();
intent=new Intent(getApplicationContext(), scelta.class);
//inseriamo i dati nell'intent
String parts[] = risp.split("/");
intent.putExtra(pkg+".myNome", parts[0]);
intent.putExtra(pkg+".myId", parts[1]);
startActivity(intent);
这是选择(这里可能是错误):
this is choice (where probably is the error):
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scelta);
// l'intent di questa activity
Intent intent=getIntent();
String pkg=getPackageName();
//prendiamo i dati
String nome=intent.getStringExtra(pkg+".myNome");
String Id=intent.getStringExtra(pkg+".myId");
intent.putExtra(pkg+".myNome", nome);
intent.putExtra(pkg+".myId", Id);
TextView tvNome = (TextView) findViewById(R.id.txtNome);
tvNome.setText(nome);
}
//pulsante per il checkin
public void checkin (View v) {
// l'intent di questa activity
Intent intent=getIntent();
String pkg=getPackageName();
//prendiamo i dati
String nome=intent.getStringExtra(pkg+".myNome");
String Id=intent.getStringExtra(pkg+".myId");
//li reinseriamo nell'intent
intent.putExtra(pkg+".myNome", nome);
intent.putExtra(pkg+".myId", Id);
intent=new Intent(getApplicationContext(), entrata.class);
startActivity(intent);
}
签入的是,我用的时候我轻点按钮传球的选择项中的方法。而这正是我需要的名称,条目:
checkin is the method that I use when i tap on the button for pass from choice to entry. And this is where i take name in Entry:
Intent intent=getIntent(); // l'intent di questa activity
String pkg=getPackageName();
String nome=intent.getStringExtra(pkg+".myNome"); //prendiamo i dati
TextView tvNome = (TextView) findViewById(R.id.nome);
tvNome.setText(nome);
感谢大家:)
thanks to everyone :)
推荐答案
你是把在一个Intent对象的值,然后创建不同的意图,开始您的最后一个活动。
you are putting your values in an Intent object, and then you created different Intent to start your last activity.
public void checkin (View v){
Intent intent=getIntent();
//first intent you created.
String pkg=getPackageName();
String nome=intent.getStringExtra(pkg+".myNome");
String Id=intent.getStringExtra(pkg+".myId");
intent.putExtra(pkg+".myNome", nome);
intent.putExtra(pkg+".myId", Id);
//you are adding extra in first intent
intent=new Intent(getApplicationContext(), entrata.class);
// here you again recreated an Intent object second intent
startActivity(intent);
// you are start activity using second intent which do not contain any extra
}
通过::其更改
Change this by::
public void checkin (View v){
Intent intent=getIntent();
String pkg=getPackageName();
String nome=intent.getStringExtra(pkg+".myNome");
String Id=intent.getStringExtra(pkg+".myId");
Intent intent1 = new Intent(getApplicationContext(), entrata.class);
intent1.putExtra(pkg+".myNome", nome);
intent1.putExtra(pkg+".myId", Id);
startActivity(intent);
}
这篇关于Android的:不能传递变量为第三个活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!