2012-03-06 12 views
1

私は次のコードを使用しています。子アクティビティが終了した後にonactivity result関数を呼び出せません

addNewReceipt.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent myIntent = new Intent(v.getContext(), AddReceipt.class); 
       myIntent.putExtra("receiptList", receipts); 
       startActivityForResult(myIntent, RECEIPT_ADD); 
      } 
     }); 
    } 

    @SuppressWarnings("unchecked") 
    public synchronized void onActivityResult(final int requestCode, int resultCode, final Intent data) 
    { 
    if (resultCode == Activity.RESULT_OK) 
    { 
    if (requestCode == RECEIPT_ADD) 
    { 
     receipts = (ArrayList<Receipt>) data.getSerializableExtra("receiptList"); 
     addReceiptsInListView(); 
    } 
    } 
    } 

AddReceiptクラスのコードは以下の通りである、

@Override 
    public void finish() { 
     Intent data = new Intent(); 
     data.putExtra("receiptList", receipts); 
     setResult(RESULT_OK, data); 
     super.finish(); 
    } 

    @SuppressWarnings("unchecked") 
    public void onCreateCall() 
    { 

      done.setOnClickListener(new OnClickListener() 
      { //receiptAddBtn 
       @Override 
       public void onClick(View v) 
       { 
        String error = ""; 
        Receipt receipt = new Receipt(); 
        receipt.comments = comments.getText().toString(); 
        receipt.referenceNo = receiptNo.getText().toString(); 
        receipt.image = imageSelected; 
        if (receipt.image == null || receipt.referenceNo == "") 
        { 
         error = "Please input Receipt No. and attach Image"; 
         displayAlert(error); 
        } 
        else 
        { 
         receipts.add(receiptCounter,receipt); 
               finish(); 
        } 
       } 
      }); 
    } 

活動が終了したときに問題が...、で、私はこれを呼び出して、そこから私の以前のクラスでは、この領収書を渡しますアクティビティpublic synchronized void onActivityResult決して動作しません。

戻るボタンも終了していません。

私が間違っている場所を教えてください。

よろしく

+0

を解決するには、それも全くonActivityResult入るんでしょうか? (レスポンスコードなどに関係なく) – Soham

+0

は 'onActivityResult(...)'が呼び出されていますか?おそらく別の 'resultCode'を使っているのでしょうか? – triad

+0

はまったく呼び出されませんでした..ああ素晴らしいです、それは以下のコードで動作しました。以前は以前と同じように笑を探しています! –

答えて

1

ここにあなたの問題

@Override 
    public void finish() { 
     Intent data = new Intent(); 
     data.putExtra("receiptList", receipts); 
     setResult(Activity.RESULT_OK, data); 
     super.finish(); 
    } 
関連する問題