我知道如何使用Intent
将数据从一个活动传递到另一个活动:
Intent intent = new Intent(getBaseContext(), AddTextNote.class);
intent.putExtra("text", note.text);
我将用例子问我的问题:如果一个活动只将一个字符串传递给另一个,第二个活动将知道每次它从第一个活动接收到意图时,它只包含一个字符串。但是,如果第一个活动将各种各样的数据集传递给另一个活动,那么区分它们的最佳方法是什么?我的意思是假设第一个活动将传递一个整数,如果用户按下button1,如果用户按下button2将传递一个customClass数组,如果用户按下button3则将浮动。简而言之,有三种方法可以开始第二项活动。
我应该如何知道意图包含哪些内容?我可以检查是否为null,如:
string myStringParameter = intent.GetStringExtra("myStringParameter");
但这不是一种明智而有效的方式。无论如何要快速有效地区分它们吗?
由于
答案 0 :(得分:2)
我认为这样可以解决问题:
public enum State {
BUTTON_1, BUTTON_2, BUTTON_3
}
public class Activity1 extends Activity {
Intent intent = new Intent(getBaseContext(), Activity2.class);
intent.putExtra("text", note.text);
intent.putExtra("state", BUTTON_1);
}
public class Activity2 extends Activity {
State s = (State) intent.getSerializableExtra("state")
switch (s) {
case BUTTON_1:
//get String value from intent and do what needed
break;
case BUTTON_2:
//etc
break;
....
}
}
希望你明白了。
答案 1 :(得分:0)
通过字符串识别数据。
活动 A 发送:
intent.putExtra("stringA", ""+BUTTON_A);
intent.putExtra("stringB", ""+BUTTON_B);
活动 B 收到:
String stringAdata = getIntent().getStringExtra("stringA");
String stringBdata = getIntent().getStringExtra("stringB");