Android的:不能传递变量为第三个活动 [英] Android: can't pass variable to a third activity

查看:97
本文介绍了Android的:不能传递变量为第三个活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有三个活动:

  • 登录
  • 选择
  • 输入

我必须通过从登录到选择的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆