2010-08-02 5 views
7

Ich brauche Hilfe in von Präferenz Bildschirm[Android] Wie bekomme ich Ergebnisse von der Absicht, die vom Einstellungsbildschirm gestartet wurde?

// Intent preference 
    DevicePref = 
    getPreferenceManager().createPreferenceScreen(this); 

    // Show a Screen with list of Devices Discovered 
    Intent i = new Intent(this,getDevice.class); 
    DevicePref.setIntent(i); 
    DevicePref.setTitle("Select Device"); 
    DevicePref.setSummary(mSelectedDevice); 
    deviceOptionsCat.addPreference(DevicePref); 

I Benutzergerät auswählen möchten ... In Präferenz screeen "Wählen Sie Device" Ich zeige startete Ergebnisse zurück von Vorsatz Geting .. wenn Benutzer klickt, dass ein anderer Der Bildschirm wird mit der Absicht gestartet, in der alle Geräte aufgeführt sind. Der Benutzer wählt das Gerät aus.

Woher weiß ich, welches Gerät ausgewählt wurde? Und ich möchte das in der Zusammenfassung aktualisieren.

Pls. lassen Sie mich wissen Dank

Antwort

9

ich die Antwort bekam, hofft, dass es jemanden wie mir helfen ...

nicht Absicht erwähnen, während Präferenz zu schaffen, wie ich in obigen Code tat .. Erwähnen Absicht auf OnPreferenceClickListener und dann tun startActivityForResult()

// Intent preference 
    DevicePref = getPreferenceManager().createPreferenceScreen(this); 
    // Show a Screen with list of Devices Discovered 

    DevicePref.setOnPreferenceClickListener(onPreferenceClick); 

    DevicePref.setTitle("Select Device"); 
    DevicePref.setSummary(mSelectedDevice); 
    deviceOptionsCat.addPreference(DevicePref); 

Dann OnPreferenceClickListner erstellen und hier StartActivityFromResult do()

OnPreferenceClickListener onPreferenceClick = new Preference.OnPreferenceClickListener() { 
     public boolean onPreferenceClick(Preference preference) { 

      if (preference ==DevicePref) 
      { 
       Intent i = new Intent(DevuiceOptions.this,getDevice.class); 
       DevicePref.setIntent(i); 
       startActivityForResult(i,CHOOSE_DEVICE); 

      } 
      return true; 
     } 
    }; 

Schließlich, um das Ergebnis handle onActivityResult und update Zusammenfassung Feld.

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

     switch (requestCode) { 

      case Constants.CHOOSE_DEVICE: 
      { 
       if (data!=null) 
       { 
        Bundle b = data.getExtras(); 
        mSelectedDevice = (String) b.get("Name"); 
        UpdatePreferences(); 
       } 

      } 
    } 
} 

Dank

+1

Das ist für mich gearbeitet .. Vielen Dank! Anfangs wurde onActivityResult nur zum zweiten Mal aufgerufen. Das lag daran, dass onPreferenceClick ein false zurückgegeben hat. – diptia

Verwandte Themen