来自两个类的android Intent getextras

时间:2018-02-02 14:15:45

标签: java android

我有以下方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView name=(TextView)findViewById(R.id.nom);
    Bundle extras = getIntent().getExtras();//from class 1
    Bundle extras2=getIntent().getExtras();//from class/
    name.setText(extras.getString("nom"));//if methode in class1 works
    name.setText(extras2.getString("nombank"));//if methode in class 2 works
}

但我得空name

我需要从两个不同的类(class1和class2)传递两个字符串到MainActivity.java

3 个答案:

答案 0 :(得分:0)

活动不能由两个不同的活动启动,只能由一个启动,因此您不能在主类中使用两个不同的附加功能 - 您只能使用一个额外的活动,并在两个活动中使用相同的键值放置数据。

因此,例如,如果你有Class1和Class2,当你在两个类中创建意图时,你应该使用:

Intent int = new Intent(this,MainActivity.class);
int.putExtra("nom",your_String);
...//Another code

MainActivity中你只得到一个额外的东西:

Bundle extra = getIntent().getExtras();
name.setText(extra.getString("nom"));

如果从MainActivity启动Class1和Class2,请改用startActivityForResult()方法。

答案 1 :(得分:0)

你不需要任何这些。 如下所示:



name.setText(getIntent().getStringExtra("nom")); 
name.setText(getIntent().getStringExtra("nombank"));




那就是它,这就是你所需要的一切。

但是你不能在同一个TextView中放置两个Intent Extras。 你只能使用一个

答案 2 :(得分:0)

使用相同的密钥传递额外内容并进入活动

第1类

Intent class1 = new Intent(this,MainActivity.class);
class1.putExtra("same_key","class 1 string"); 

第2类

Intent class2 = new Intent(this,MainActivity.class);
class2.putExtra("same_key","class 2 string"); 

MainActivity

   Bundle extras = getIntent().getExtras();

    //Called from Class1 show "class 1 string" 
    //Called from Class2 show "class 2 string" 
     name.setText(extras.getString("same_key"));

如果从Class 1调用MainActivity,则额外字符串将来自Class 1,如果来自Class 2,则额外字符串将来自Class2。