2010-08-02 25 views
7

tôi cần sự giúp đỡ trong geting kết quả trở lại từ ý định đưa ra từ màn hình sở thích[Android] Cách nhận kết quả từ mục đích được khởi chạy từ màn hình tùy chọn?

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

Tôi muốn dùng lựa chọn thiết bị ... Trong screeen thích tôi hiển thị "Chọn Device" .. khi người dùng nhấp chuột đó, khác màn hình được khởi chạy theo mục đích nơi tất cả các thiết bị được liệt kê. Người dùng chọn thiết bị.

Làm cách nào để biết người dùng đã chọn thiết bị nào? Và tôi muốn cập nhật trong tóm tắt.

Xin lỗi. cho tôi biết Cảm ơn

Trả lời

9

tôi đã câu trả lời, Hy vọng nó sẽ giúp một người như tôi ...

Đừng đề cập đến ý định khi tạo ra sở thích như tôi đã làm trong đoạn code trên .. Đề cập đến ý định OnPreferenceClickListener và sau đó làm 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); 

Sau đó tạo OnPreferenceClickListner và đây làm 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; 
     } 
    }; 

Cuối cùng để có được kết quả xử lý onActivityResult và cập nhật trường Tóm tắt.

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

      } 
    } 
} 

Cảm ơn

+1

này Làm việc cho tôi .. Cảm ơn! Ban đầu, onActivityResult chỉ được gọi là lần thứ hai. Đó là bởi vì onPreferenceClick đã trả về giá trị sai. – diptia

Các vấn đề liên quan