[Android], Как получить результаты намерения, запущенного с предпочтительного экрана?

Я нуждаюсь в помощи в получении результатов назад от намерения, запущенного с предпочтительного экрана

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

Я хочу, чтобы пользователь выбрал устройство... На предпочтительном экране я показываю "Избранное Устройство".. когда пользователь нажимает это, другой экран запускается намеренно, где все устройства перечислены. Пользователь выбирает устройство.

Теперь, как я знаю пользователя, выбранного который устройство? И я хочу обновить это в сводке.

. сообщите мне Спасибо

7
задан Srinivas Reddy Thatiparthy 2 August 2010 в 04:51
поделиться

1 ответ

Я получил ответ. Надеюсь, это поможет кому-то вроде меня ...

Не упоминайте намерение при создании предпочтений, как я сделал в приведенном выше коде. Упомяните намерение на OnPreferenceClickListener, а затем выполните 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); 

Затем создайте OnPreferenceClickListner и здесь выполните 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;
       }
   };

Наконец, чтобы получить дескриптор результата onActivityResult и обновить поле Summary.

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

           }
    }
}

Спасибо

9
ответ дан 7 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: