0

我有两个活动:ActivityAActivityB

Activity A包含三个线性布局。单击每个线性布局正在调用showReport正在启动的方法ActivityB

在 Back Button click in 上ActivityB,我ActivityA在一个函数中得到结果onActivityResult并尝试刷新ActivityA.

但问题是——

当我单击任何线性布局时,将onActivityResult调用 并且 myresultCode变为等于0,因此条件为Activity A再次调用。

只有当我按下后退按钮时,如何调用Activity A或如何获得条件。resultCode0

我的代码示例-

活动一:

int REQUEST_CODE = 2;

public void showReport(View v) 
    {
            tag = v.getTag().toString();
        Intent intent = new Intent(this, ActivityB.class);
        intent.putExtra("name", tag);
        this.setResult(RESULT_OK, intent);
        startActivityForResult(intent, REQUEST_CODE); 
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);

        if (resultCode == 0) {
            Intent in = new Intent(this, ActivityA.class);
            startActivity(in);  
        }
    }
4

2 回答 2

0

尝试使用一些全局变量ApplicationClass(安装应用程序时将首次调用)

public  boolean  check =false; 
  • 检查布尔值的真实值checkonActivityResultActivityA一次checkfalse这样,它不会走得更远)
  • 当按回ActivityB然后设置值check=true
  • 当你再次打电话时使false价值checkActivityB

所以activityA只有当它出现时你才会打电话ActivityB

于 2013-04-10T12:52:41.187 回答
0

活动一:

Intent in = new Intent(this, ActivityA.class);
        startActivity(in);  

如果您在activityA中,那么为什么要再次启动相同的Activity?
无论如何,您可以使用此检查后退按钮 ->

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_CANCELED) {
//means back button was pressed in ActivityB
 }
}

编辑showReport

 this.setResult(RESULT_OK, intent);
于 2013-04-10T12:01:34.050 回答