我有一些JSON数据 -
{
"ActivityOrder":[
{
"Position":3,
"ActivityName":"Activity1"
},
{
"Position":5,
"ActivityName":"Activity2"
},
{
"Position":2,
"ActivityName":"Activity3"
},
{
"Position":1,
"ActivityName":"Activity4"
},
{
"Position":4,
"ActivityName":"Activity5"
}
]
}
根据上面的JSON数据,从Single Activity或类调用Intent。我的意思是先调用Position1活动(Activity4),然后调用position2(Activity3),依此类推。
注意: - 在JSON数据中,可以从后端更改活动位置。
获得活动名称后,立即创建类:
Class activity= Class.forName("yourActivityName");
然后创建意图:
Intent intent = new Intent(this, activity);
创建pojo模型类:
public class MyPojo {
String ActivityName;
int Position;
public MyPojo(String activityName, int position) {
ActivityName = activityName;
Position = position;
}
public int getPosition() {
return Position;
}
public void setPosition(int position) {
Position = position;
}
public String getActivityName() {
return ActivityName;
}
public void setActivityName(String activityName) {
ActivityName = activityName;
}
}
现在解析json到Model:
List<MyPojo> MyPojoList=new ArrayList<>();
try {
JSONObject jObj = new JSONObject("your json response");
JSONArray jArr = jObj.getJSONArray("ActivityOrder");
for (int i=0; i < jArr.length(); i++) {
JSONObject obj = jArr.getJSONObject(i);
String Position = jObj.getString("Position");
String ActivityName = jObj.getString("ActivityName");
MyPojoList.add(new MyPojo(ActivityName,Position));
}
}
catch(JSONException ex) {
ex.printStackTrace();
}
现在排序数组:
Collections.sort(MyPojoList, new Comparator<MyPojo>(){
public int compare(MyPojo obj1, MyPojo obj2) {
return Integer.valueOf(obj1.getPosition()).compareTo(Integer.valueOf(obj2.getPosition()));
}
});
最后,逐个开始活动:
Intent intent=new Intent();
intent.setComponent(new ComponentName(getApplicationContext(), MyPojoList.get(position).getActivityName()));
try {
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}