2012-01-12 37 views
5

Tôi có một hoạt động trong đó có một spinner. vì đối với chân dung và chế độ phong cảnh tôi có bố trí khác nhau vì vậy tôi đang thay đổi cách bố trí trong onConfigurationChanged phương phápxử lý hướng màn hình android cho spinner

@Override 
    public void onConfigurationChanged(Configuration conf) { 
     super.onConfigurationChanged(conf); 
     setContentView(R.layout.layout); 
     initUI(); 
    } 

nhưng vấn đề là khi tôi thay đổi định hướng, spinner của tôi là tái vì vậy nếu spinner được mở ở chế độ dọc nó gần gũi trong yêu cầu chế độ phong cảnh.Yêu cầu là: nếu nó được mở trong bất kỳ chế độ, nó phải được mở sau khi thay đổi định hướng.can bạn hãy cho tôi biết làm thế nào để xử lý tình trạng này.

+0

tôi đã không cố gắng nhưng có hai phương pháp osavestate và khôi phục một cái gì đó như thế trong spinner.Once thử chúng – Sameer

+0

Tôi nghĩ rằng bạn sẽ nhận được các giải pháp của vấn đề của mình từ đây ..... http: // nhà phát triển .android.com/resources/articles/nhanh hơn-screen-orientation-change.html – himanshu

Trả lời

0

thử spinner của phương pháp() performClick

0

Để ngăn chặn tái tạo của Spinner của bạn, bạn có thể thêm này trong tập tin Manifest của bạn

<activity android:name=".Activity_name" 
      android:configChanges="orientation|keyboardHidden"> 

Nhưng bằng cách thêm Layout của bạn này sẽ không được thay đổi tự động khi bạn xoay thiết bị của bạn, vì vậy bạn phải quản lý đó bằng tay như thế này,

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){ 
      setContentView(R.layout.login_landscape); 
     } 
     else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { 
      setContentView(R.layout.login);   
     } 
    } 

để biết thêm thông tin bạn có thể kiểm tra câu trả lời của tôi here.

+0

Tôi đang làm điều tương tự nhưng vẫn còn có một nhu cầu để thiết lập giá trị spinner sau khi thiết lập bố trí khác spinner sẽ được để trống. –

+0

Hãy thử mã ở trên, nó sẽ duy trì trạng thái. Vì Activity không được tạo lại. –

+0

tôi đã thử mã trên. tôi thấy trống trong giá trị spinner bởi vì tôi có một spinner ở chế độ portait và tôi có một spinner với cùng một id trong chế độ phong cảnh. –

0

Khi định hướng thay đổi, hãy hủy phương thức được gọi và hoạt động của bạn sẽ tạo lại một lần nữa. Để tránh phương thức hủy được gọi, bạn cần phải thêm các mã bên dưới vào tệp kê khai. Nhưng trong trường hợp này chỉ có một bố trí có thể được sử dụng, nếu bạn muốn repostion nội dung của bạn, bạn cần phải làm nó tự động sau đó.

android:configChanges="orientation|keyboardHidden" 
Các vấn đề liên quan