Android 将多个数据系列传递给活动/服务
我知道如何使用Android 将多个数据系列传递给活动/服务,android,android-activity,Android,Android Activity,我知道如何使用Intent将数据从一个活动传递到另一个活动: Intent intent = new Intent(getBaseContext(), AddTextNote.class); intent.putExtra("text", note.text); 我将举个例子问我的问题:如果一个活动只向另一个活动传递一个字符串,那么第二个活动将知道,每当它从第一个活动接收到意图时,它只包含一个字符串。但是,如果第一个活动将不同场合的多组数据传递给另一个活动,那么区分它们的最佳方法是什么?我的意
Intent
将数据从一个活动传递到另一个活动:
Intent intent = new Intent(getBaseContext(), AddTextNote.class);
intent.putExtra("text", note.text);
我将举个例子问我的问题:如果一个活动只向另一个活动传递一个字符串,那么第二个活动将知道,每当它从第一个活动接收到意图时,它只包含一个字符串。但是,如果第一个活动将不同场合的多组数据传递给另一个活动,那么区分它们的最佳方法是什么?我的意思是,假设第一个活动在用户按下按钮1时传递一个整数,在用户按下按钮2时传递一个customClass数组,在用户按下按钮3时传递pas浮点。简单地说,有三种方法可以开始第二项活动
我如何知道意图包含什么?我可以检查是否为空,如:
string myStringParameter = intent.GetStringExtra("myStringParameter");
但这不是一个明智和有效的方法。有没有办法快速有效地区分它们
谢谢我想这样可以达到目的:
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;
....
}
}
希望您能理解。数据是通过字符串识别的 活动A发送:
intent.putExtra("stringA", ""+BUTTON_A);
intent.putExtra("stringB", ""+BUTTON_B);
活动B接收:
String stringAdata = getIntent().getStringExtra("stringA");
String stringBdata = getIntent().getStringExtra("stringB");
所以你的意思是我应该为每个意图添加额外的byte/integer/enum,作为该意图的标识符,对吗?这只是正常的做法。从技术上讲,有很多方法可以做到这一点。你是来自PHP还是JS?)总的来说,这是可能的,但相当丑陋和不理性。