Android正在等待另一个活动结果-它没有';行不通

Android正在等待另一个活动结果-它没有';行不通,android,Android,如何在android中等待另一个活动结果。 我已经编写了以下代码,但在活动完成后,它总是转到onCreate()方法 我有选项卡活动。从一个选项卡活动中,我调用了另一个活动,即弹出窗口……在完成弹出窗口后,它应该返回到上一个活动 @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id);

如何在android中等待另一个活动结果。 我已经编写了以下代码,但在活动完成后,它总是转到onCreate()方法

我有选项卡活动。从一个选项卡活动中,我调用了另一个活动,即弹出窗口……在完成弹出窗口后,它应该返回到上一个活动

   @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    Object o = this.getListAdapter().getItem(position);
    keyword = o.toString();
    positions = position;

    if(position != 0 ){
        Bundle bundle = new Bundle();

        Intent showContent = new Intent(getApplicationContext(),SalesRouteDevitionActivity.class);
        int postion = position;
        String aString = Integer.toString(postion);
        bundle.putString("positon", aString);
        showContent.putExtras(bundle);
        startActivityForResult(showContent,0);
    }else{

        Intent intent = new Intent(SalesRouteActivity.this, ListRetailerActivity.class);
        Bundle bundle = new Bundle();
        bundle.putString("RouteName", keyword);
        intent.putExtras(bundle);
        View view = SalesActivityGroup.group.getLocalActivityManager().startActivity("", intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();  
        SalesActivityGroup.group.replaceView(view);
    }
}


   @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {  

       Log.w("onActivityResult" ," --requestCode ---" + requestCode + " -- resultCode -- " + resultCode + " -- data --" + data);
      if(resultCode==0){
          Toast.makeText(this, "Reason has been successfully.", Toast.LENGTH_LONG).show();
          if(resultCode==RESULT_OK)
              Toast.makeText(this, "Reason has been successfully.", Toast.LENGTH_LONG).show();
         else
              Toast.makeText(this, "Fail", Toast.LENGTH_LONG).show();
      }
  }
和SalesRoutedActivity.class

    public class SalesRouteDevitionActivity extends Activity {
private String array_spinner[];
String param1 = "";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.route_diviation_popup);
    array_spinner=new String[2];
    array_spinner[0]="Rain";
    array_spinner[1]="Floods";

    Spinner s = (Spinner) findViewById(R.id.spinner1);
    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, array_spinner);
    s.setAdapter(adapter);
    Button button = (Button) findViewById(R.id.submit);

     button.setOnClickListener(new OnClickListener() {
         public void onClick(View v) {


             Intent mIntent = new Intent();
             setResult(RESULT_OK);
             finish();



         }
     });

}

}
这是我的选项卡活动。我正在使用ActivityGroup

  public class MainActivity extends TabActivity {
int selectedTab;
TabHost tabHost ;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabview);

    TabHost t = getTabHost();
    tabHost = (TabHost)findViewById(android.R.id.tabhost);

    TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
    TabSpec secondTabSpec = tabHost.newTabSpec("tid1");
    TabSpec thirdTabSpec = tabHost.newTabSpec("tid1");
    /** TabSpec setIndicator() is used to set name for the tab. */
    /** TabSpec setContent() is used to set content for a particular tab. */
    firstTabSpec.setIndicator("Sales").setContent(new Intent(this,SalesActivityGroup.class));
    secondTabSpec.setIndicator("Admin").setContent(new Intent(this,SettingActivityGroup.class));
    thirdTabSpec.setIndicator("Setting").setContent(new Intent(this,SettingActivityGroup.class));


    tabHost.addTab(firstTabSpec);
    tabHost.addTab(secondTabSpec);
    tabHost.addTab(thirdTabSpec);
    tabHost.setCurrentTab(0);
    tabHost.setMinimumHeight(25);
}

public void onTabChanged(String arg0) {
        selectedTab = tabHost.getCurrentTab();

}
这是SalesActivityGroup.java

 public class SalesActivityGroup extends ActivityGroup {

public static SalesActivityGroup group;
private ArrayList<View> history;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.history = new ArrayList<View>();
    group = this;

    View view = getLocalActivityManager().startActivity("Sales",
            new Intent(this, SalesRouteActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
            .getDecorView();

    replaceView(view);

}

public void replaceView(View v) {
    history.add(v);
    setContentView(v);

}

public void back() {
    if (history.size() > 0) {
        history.remove(history.size() - 1);
        if (history.size() > 0) {
            setContentView(history.get(history.size() - 1));
        } else {
            finish();
        }
    } else {
        finish();
    }
}

@Override
public void onBackPressed() {
    SalesActivityGroup.group.back();
    return;
}
公共类SalesActivityGroup扩展ActivityGroup{
公共静态销售活动组;
私家侦探史;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.history=new ArrayList();
组=此;
View=getLocalActivityManager().startActivity(“销售”,
新意图(这是SalesRouteActivity.class)。添加标志(意图。标志\活动\清除\顶部))
.getDecorView();
替换视图(视图);
}
公共视图(视图v){
历史。添加(v);
setContentView(v);
}
公众退票(){
if(history.size()>0){
history.remove(history.size()-1);
if(history.size()>0){
setContentView(history.get(history.size()-1));
}否则{
完成();
}
}否则{
完成();
}
}
@凌驾
public void onBackPressed(){
SalesActivityGroup.group.back();
返回;
}
}

我知道这是我们应该做的,但我真的不知道为什么我的角色不工作

我没有使用onActivityResult()方法&它也没有打印
Log

请帮帮我


提前感谢

Android中没有控制台。因此,
System.out.println
无法工作。出于调试目的,您可以使用
LogCat

您不需要打电话

super.onActivityResult(requestCode, resultCode, data);
当您处理ActivityResult时

将System.out.println替换为Log.i

删除
startActivity(showContent)来自SalesRoutedEventActivity.class
编辑:

Intent resultIntent = new Intent();
setResult(Activity.RESULT_OK, resultIntent);
finish();
替换这个

if(resultCode==0)
用这个

if(requestCode==0)

如果您使用的是tab ActivityGroup,则应如下使用:

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if(requestCode ==1){
        Bundle bundle = data.getExtras();
        String roteCode = bundle.getString("RouteCode");
        Intent intent = new Intent(SalesActivityGroup.this,ListRetailerActivity.class);
        bundle.putString("RouteCode", roteCode);
        intent.putExtras(bundle);
        View view = SalesActivityGroup.group.getLocalActivityManager().startActivity("",intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
        SalesActivityGroup.group.replaceView(view);
    }
   }
呼叫活动:

 Intent showContent = new Intent(botton.getContext(),RetailerOrderEActivity.class);
 getParent().startActivityForResult(showContent, 2);
考虑一下
getParent()
,如果它是Tab activityGroup,那么就这样调用它

儿童活动:

    Intent i = new Intent();
    Bundle bundle = new Bundle();
    i.putExtras(bundle);
    setResult(Activity.RESULT_OK, i);
    finish();
完成后,将转到ActivityGroup类:

你可以这样打电话:

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if(requestCode ==1){
        Bundle bundle = data.getExtras();
        String roteCode = bundle.getString("RouteCode");
        Intent intent = new Intent(SalesActivityGroup.this,ListRetailerActivity.class);
        bundle.putString("RouteCode", roteCode);
        intent.putExtras(bundle);
        View view = SalesActivityGroup.group.getLocalActivityManager().startActivity("",intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
        SalesActivityGroup.group.replaceView(view);
    }
   }

没有。我也尝试过这个方法。我没有使用activityResult()方法,我对那个部分进行了注释。即使没有使用这个方法,请将这个
if(resultCode==RESULT\u OK)
更改为
if(resultCode==Activity.RESULT\u OK)
也将`if(resultCode==0)`更改为`if(requestCode==0)`@naggeeranpiraba让我们删除super.onActivityResult(requestCode、resultCode、data);从该方法中,我对该部分进行了注释。即使没有进入该位置,您是否看到Log.w的第一行?没有。我没有看到Log out put。我认为它是go to oncreate()方法。您是否对每个选项卡中的活动使用intent?我从这里得到了解决方案@sparkymat
System.out.println
在日志中可见。i@Pied派珀,我不知道,谢谢!