2009-05-25 9 views
2

私は意図を使用して他のクラスを開くアプリケーションがあります。Repository.classで意思問題、戻り値(アンドロイド)

 
private void createRepository(){ 
     Intent j = new Intent(this, Repository.class); 
     startActivityForResult(j, ACTIVITY_CREATE); 
    } 

を我々はonActivityResult方法があります。

 
public void onActivityResult(int reqCode, int resultCode, Intent data) { 
     super.onActivityResult(reqCode, resultCode, data); 

     switch (reqCode) { 
     case (PICK_CONTACT) : 
      if (resultCode == Activity.RESULT_OK) { 
      Uri contactData = data.getData(); 
      c = managedQuery(contactData, null, null, null, null); 
      if (c.moveToFirst()) { 
       //String name = c.getString(c.getColumnIndexOrThrow(People.NAME)); 
       num = c.getString(c.getColumnIndexOrThrow(People.NUMBER)); 

      }  

      }  
     break; 
     } 
     finish(); 
    } 

をI numの値をRepository.classを作成するファーストクラスに戻す方法がわかりません。 ありがとうございます。 Michaël

答えて

2

あなたは方向が混ざっていると思います。

Repositoryクラスでは、finishを呼び出す前にsetResult()にする必要があります。追加データの場合は、putExtra()データを使用できます。

たとえば、結果をonCreate()関数に設定します。

呼び出し元クラス(リポジトリを起動するクラス)で、onActivityResult(int requestCode, int resultCode, Intent data)を上書きし、data.getBundleExtra()でデータを取得します。

インテントとアクティビティのアンドロイドリファレンスには説明があり、サンプルにはReceiveResultサンプルとSendResultサンプルも含まれています。

+0

ありがとうございます。最後に、この問題を解決するためにこの投稿を使用しました:http://stackoverflow.com/questions/768969/passing-a-bundle-on-startactivity –

関連する問題