2017-04-20 7 views
-1

アクティビティのonActivityResultメソッドは、常にインテントエクストラに対してnullを返します。私はこれらのメソッドをアクティビティに直接呼びます。これのための解決策を見つけるのを助けてください。 OrderActivityなぜonActivityResultが常にインテントのヌル値を返すのですか

@Override 
public void onItemClick(View v, int position) { 
    Customers customers = customersData.get(position); 
    Intent intent = new Intent(); 
    intent.putExtra("testing","String value"); 
    intent.putExtra("selected_customer",customers); 
    setResult(Activity.RESULT_OK,intent); 
    finish(); 
} 

からCustomerListActivityを開始

private void onClickShopNameLayout() { 
    shopNameLayout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i = new Intent(OrderActivity.this,CustomerListActivity.class); 
      startActivityForResult(i,CUSTOMER_REQUEST_CODE); 
     } 
    }); 
} 

は、このリスト項目のクリックのリスナーにトリガーリサイクラービューアダプタクラスからインターフェイスメソッドです。 OrderActivityでメソッドをオーバーライドonActivityResult CustomerListActivity

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
     case CUSTOMER_REQUEST_CODE: 
      if (resultCode == Activity.RESULT_OK) { 
       String testing = getIntent().getStringExtra("testing"); 
       Customers customers = getIntent().getParcelableExtra("selected_customer"); 
       String businessName = customers.getBusinessName(); 
       Log.d(TAG,"customer name "+businessName +" testing "+testing); 

      } 
    } 
} 

に実装されています。

答えて

1

あなたonActivityResult()dataという名前あなたのコード内Intentその提供を行います。意図がextraになるには、getIntent()の代わりにdataを使用してください。

これを試してみてください:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
     case CUSTOMER_REQUEST_CODE: 
      if (resultCode == Activity.RESULT_OK) { 

       String testing = data.getStringExtra("testing"); 
       Customers customers = data.getParcelableExtra("selected_customer"); 
       String businessName = customers.getBusinessName(); 

       Log.d(TAG,"customer name " + businessName +" testing "+testing); 
      } 
     break; // Don't forget to use break for multiple cases 
    } 
} 
+0

ごめんなさい。私はアホです。 –

+0

心配はいりません。 ..ちょうど間違いに過ぎない。 Btw私の答えが役に立つと思われる場合は、upv​​oteを与えてください。前もって感謝します... – FAT

1

アクティビティの結果インテントではなく、アクティビティインテントからエクストラを取得しています。

代わりの

String testing = getIntent().getStringExtra("testing"); 
Customers customers = getIntent().getParcelableExtra("selected_customer"); 

String testing = data.getStringExtra("testing"); 
Customers customers = data.getParcelableExtra("selected_customer"); 
関連する問題