setResult()不返回任何结果

时间:2016-02-20 23:03:56

标签: android startactivityforresult

我试图从我正在开始的活动中获得结果。问题是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块工作得很好。

0 个答案:

没有答案