2016-04-27 10 views
0

Ich mache eine neue Aktivität, die ein Bluetooth-Geräteobjekt erstellt. Wenn ich dies mit onActivityResult() Methode zurückgeben muss, habe ich ein Problem.Objekt auf onActivityResult abrufen

Child Aktivität

Intent intent = new Intent(); 
      intent.putExtra("BluetoothDevice", DeviceArrayList.get(arg2)); 
      setResult(Activity.RESULT_OK, intent); 
      finish(); 

DeviceArrayList.get (arg2) ist das Geräteobjekt.

Eltern Aktivität

BluetoothDevice btDevice; 
... 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

      if (requestCode == 1) { 
       if(resultCode == Activity.RESULT_OK){ 

        btDevice = data.getExtras("BluetoothDevice"); 

       } 
       if (resultCode == Activity.RESULT_CANCELED) { 
        Toast.makeText(this, "Resultado cancelado", Toast.LENGTH_SHORT) 
          .show(); 
       } 
      } 
     }//onActivityResult 

Wer ich das Objekt in btDevice bekommen kann?

+0

Jose M: Ist Ihr BluetoothDevice ist Serilizable oder Parceable Kumpel ??? Sie können nur Serializable oder Parceable Objekt in Absicht übergeben :) –

+0

mm .. Ich weiß es nicht :(Ich diesen Fall, ich kann es serialisieren? –

+1

Wenn Sie android.bluetooth.BluetoothDevice verwenden, erweitert Parcelable, so dass Sie verwenden können intent.putParcelable ("key", Objekt) – darwin

Antwort

2

Machen Sie Ihre Bluetooth-Geräteklasse serializabale oder parcable. Und dann können Sie es auf die zweite Aktivität passieren Absicht mit:

intent.putExtra("bluetooth", myBluetoothDeviceObject); 

und Sie können das gleiche in Ihrem zweiten Aktivität erhalten mit:

intent.getParcelableExtra("bluetooth") 

Ich ziehe parceable über serializable. Bitte schauen Sie sich die Android-Dokumentation für weitere Informationen: http://developer.android.com/reference/android/os/Parcelable.html

0

make BluetoothDevice Klasse serializable und in onActivityResult es gegossen wie die

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

     if (requestCode == 1) { 
      if(resultCode == Activity.RESULT_OK){ 

       btDevice =(BluetoothDevice)data.getSerializableExtra("BluetoothDevice"); 

      } 
      if (resultCode == Activity.RESULT_CANCELED) { 
       Toast.makeText(this, "Resultado cancelado", Toast.LENGTH_SHORT) 
         .show(); 
      } 
     } 
    }//onActivityResult