2010-08-02 2 views
7

мне нужна помощь в адресности результатов назад от намерения запущенного с экрана предпочтения[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); 

Я хочу, чтобы пользователь, чтобы выбрать устройство ... В привилегированном Полноэкранном я показать «Выберите Device» .. когда пользователь щелкает, что другой экран запускается с помощью намерения , где перечислены все устройства. Пользователь выбирает устройство.

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

Pls. дайте мне знать Спасибо

ответ

9

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

Не говоря уже о намерениях, создавая предпочтение, как я сделал в коде выше .. Упоминание намерение на 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 и обновить поле Сводка.

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

      } 
    } 
} 

Благодаря

+1

Это работает для меня .. Спасибо! Первоначально onActivityResult вызывается только во второй раз. Это было потому, что onPreferenceClick возвращал false. – diptia

Смежные вопросы