我试图从我正在开始的活动中获得结果。问题是setResult没有按预期工作:
wortinfo_editsave.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Bundle extras = getIntent().getExtras();
if(extras !=null)
{
Intent intent = new Intent();
boolean neu = extras.getBoolean("neu");
if(neu)
{
db.insert_word(wortinfo_wort.getText().toString(),wortinfo_bedeutung.getText().toString(),wortinfo_beispiel.getText().toString(),wortinfo_type.getSelectedItem().toString(),0);
intent.putExtra("res",0);
setResult(100, intent);
finish();
}
else
{
db.update_word(edit_id,wortinfo_wort.getText().toString(),wortinfo_bedeutung.getText().toString(),wortinfo_beispiel.getText().toString(),wortinfo_type.getSelectedItem().toString(),0);
intent.putExtra("res",1);
setResult(100,intent);
finish();
}
}
}
});
我已多次跟踪程序并且所有条件都正常工作但只在一个实例中(第一个,neu == true),setResult会调用onActivityResult()。我还有另一个代码块,它试图设置结果并完成活动,但它只是关闭活动而不返回任何结果。我也尝试将100更改为RESULT_OK或其他随机数,但它没有工作:
public boolean onOptionsItemSelected(MenuItem item)
{
super.onOptionsItemSelected(item);
switch(item.getItemId())
{
case R.id.edit_wort:
...
case R.id.delete_wort:
db.delete_wort(wortinfo_wort.getText().toString(), wortinfo_bedeutung.getText().toString());
Intent intent = new Intent();
intent.putExtra("res",2);
setResult(100,intent);
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我已经阅读了有关此问题的所有其他问题,但它有点不同,因为代码的一部分没有工作,而上面的if块工作得很好。