Android activitygroup推送startactivityforresult
我有以下活动组Android activitygroup推送startactivityforresult,android,android-intent,Android,Android Intent,我有以下活动组 public class ActivityStack extends ActivityGroup{ public static int settingsFlag=0; private Stack<String> stack; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
public class ActivityStack extends ActivityGroup{
public static int settingsFlag=0;
private Stack<String> stack;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (stack == null)
stack = new Stack<String>();
// start default activity
settingsFlag=1;
push("FirstStackActivity", new Intent(this, ChannelsActivity.class));
}
@Override
public void finishFromChild(Activity child) {
pop();
}
@Override
public void onBackPressed() {
pop();
}
public void push(String id, Intent intent) {
Window window = getLocalActivityManager().startActivity(id, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
if (window != null) {
stack.push(id);
setContentView(window.getDecorView());
}
}
public void pop() {
if (stack.size() == 1)
{
if (getParent() instanceof MainActivity) {
((MainActivity) getParent()).changeToMainTabs();
}
} else {
LocalActivityManager manager = getLocalActivityManager();
manager.destroyActivity(stack.pop(), true);
if (stack.size() > 0) {
Intent lastIntent = manager.getActivity(stack.peek()).getIntent();
Window newWindow = manager.startActivity(stack.peek(), lastIntent);
setContentView(newWindow.getDecorView());
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
//what is the current activity?
menu.add(0, 0, 0, "holder");
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
//start a new
menu.clear();
//add some menu options
getLocalActivityManager().getCurrentActivity().onPrepareOptionsMenu(menu);
return super.onPrepareOptionsMenu(menu);
}
}
我怎样才能做到这一点?有人能帮忙吗?要接收推送,请在您的主要群组活动中尝试以下代码'
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//code for receive the data
}
意味着将上述代码放入ActivityStack activity中,您的问题是?我的问题是,我不知道如何使用ActivityGroup解决startActivityForResult。我已经编辑了我的codeCheck我的答案这里我的应用程序在线失败:Intent lastIntent=manager.getActivity(stack.peek()).getIntent();在MainStack方法中。我设法解决了它。thx。你的回答对我帮助很大!所以我应该把activityStack.push(“SQecondActivity,countryIntent”)放进去?或者我应该在push方法中使用什么?我知道我需要使用onACtivityResult的metnof,以防我使用startActivityForResult。我编辑了我的代码。是的,因为它将返回值给其父级而不是子级。你必须将其放入,无需编辑谢谢你的重播,但我不需要使用onACtivityResult。我已更改了我的代码,无意中。我的应用程序在Intent lastIntent=manager.getActivity(stack.peek()).getIntent()行失败;在我调用的第二个活动中,实际上是一个listActivity,我调用了一个finish方法。好的,但请始终记住,在activitygroup中,它将返回值传递给其父级,而不是子级。我认为您获得了解决方案祝贺。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//code for receive the data
}