gpt4 book ai didi

java - Activity 不等待结果

转载 作者:行者123 更新时间:2023-12-01 15:33:10 26 4
gpt4 key购买 nike

我有一个名为 CForm 的 Activity 。我想调用 CGForm 询问结果。得到结果后开始另一项 Activity 。问题是,当我启动details_click方法时,它执行CGFORM,但不等待在表单中设置结果,它跳转到CDFORM。

这是 CFORM 的代码:

////////////////////////////CForm/////////////////////////
public boolean details_click()
{
if(listview.getCheckedItemPosition()>=0)
{
ArrayList<ComandaClass> listcompos = CClass.C();

int gestiuneId = 0;
if ((configurare.bAlCom) && (listcompos.size() == 0))
{
StocClass.setComandaContextForDB(this);
listGest = StocClass.Gestiuni_Get();
if (listGest.size() > 1)
{
Intent intent = new Intent();
intent.setClass(CForm.this,CGForm.class);
startActivityForResult(intent,GET_CODE);//here i would like to get back the result from CGForm

dGeid=getGIdResult;
}
}

boolean tof = true;
if ((configurare.bGCom) && (gestiuneId == -1))
tof = false;
if (tof)
{
dCid=listCom.get(listview.getCheckedItemPosition()).getCId();
dClid=listCom.get(listview.getCheckedItemPosition()).getClId();
dF=listCom.get(listview.getCheckedItemPosition()).getF();

Intent intent = new Intent();
intent.setClass(CForm.this,CDForm.class);
startActivity(intent);
}
return true;
}
else
{
Toast.makeText(this, "X", 5000).show();
return false;
}

}

public static int getGIdResult=-1;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{


if (requestCode == GET_CODE)
{
if (resultCode == RESULT_OK)
{
getGIdResult=data.getIntExtra("GIdResult",-1);
}
else
{
getGIdResult=-1;
}
}
super.onActivityResult(requestCode, resultCode, data);
}

CGFORM代码:

  ////////////////////CGForm//////////////////
public class CGForm extends Activity
{
public static ArrayList<StocClass> listG=null;
public static int gid;
ListView listview=null;
Button btnOK=null;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.comenzigestiuni);

Locale locale = new Locale("en");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());

listview=(ListView)findViewById(R.id.listViewDG);

listG = CForm.listGest;

CG_Load();
}//oncreate
private void CG_Load()
{
//..adding data to listview
btnOK=(Button)findViewById(R.id.menuItemOk);
btnOK.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
if (listview.getCheckedItemPosition() >= 0)
{
gestiuneid = listG.get(listview.getCheckedItemPosition()).getGId();

Intent intent = new Intent();
intent.putExtra("GIdResult", gestiuneid);
setResult(RESULT_OK, intent);

finish();
}
}
});
}//CG_Load

@Override
protected void onStop()
{
gestiuneid=-1;

Intent intent = new Intent();
intent.putExtra("GIdResult", gestiuneid);
setResult(RESULT_OK, intent);

super.onStop();
}

}

谢谢先进!

最佳答案

startActivity()startActivityForResult() 都不是阻塞调用。收到结果后应该执行的任何操作都需要移至 onActivityResult() 方法。

关于java - Activity 不等待结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9316047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com