2010-08-02 9 views
7

Potrzebuję pomocy w geting wyniki z powrotem z zamiarem wystrzelony z ekranu preferencji[Android] Jak uzyskać wyniki z celowego uruchomienia z ekranu preferencji?

// 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); 

chcę użytkownikowi wybrać urządzenie ... zamiast screeen pokażę „Wybierz Device” .. kiedy użytkownik kliknie, że inny ekran jest uruchamiany przez intencję , gdzie znajdują się wszystkie urządzenia. Użytkownik wybiera urządzenie.

Skąd mam wiedzieć, że użytkownik wybrał to urządzenie? I chcę zaktualizować , że w podsumowaniu.

Pls. daj mi znać Dzięki

Odpowiedz

9

dostałem odpowiedź, mam nadzieję, że to pomoże kogoś takiego jak ja ...

Nie wspominając intencji przy tworzeniu preferencje jak ja w powyższym kodzie .. Wspomnieć zamiarem OnPreferenceClickListener a następnie wykonaj 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); 

Następnie utwórz OnPreferenceClickListner i tutaj nie StartActivityFromResult()

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; 
     } 
    }; 

Wreszcie, aby uzyskać uchwyt wyniku onActivityResult i pole Podsumowanie aktualizacji.

@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(); 
       } 

      } 
    } 
} 

Dzięki

+1

ten pracował dla mnie .. Dzięki! Początkowo funkcja onActivityResult była wywoływana dopiero po raz drugi. Było tak, ponieważ onPreferenceClick zwracał wartość false. – diptia

Powiązane problemy