我有以下方法:
@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
答案 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。