5

tôi thiết lập ActionBarSherlock với ứng dụng của tôi, và tôi đang cố gắng sử dụng Progress Intermediate, Tôi đang sử dụng này:Progress Intermediate không làm việc với ActionBarSherlock chạy trên Gingerbread

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  
    setSupportProgressBarIndeterminateVisibility(false); 

Trong onCreate của tôi, và sau đó sử dụng:

setSupportProgressBarIndeterminateVisibility(true); 

Để bật.

Nó hoạt động tốt trong ICS nhưng nó không hoạt động ở tất cả trong Gingerbread hoặc Froyo, có ai biết cách làm cho nó hoạt động không? Cảm ơn

Trả lời

13

Tôi vừa gặp sự cố tương tự. Giải pháp của Jake ở trên đã không sửa chữa nó cho tôi - phương pháp này là không xác định.

Tôi tìm thấy một giải pháp làm việc đăng bởi Jake nằm trong danh sách lỗi cho ActionBarSherlock đây:

phản ứng Xem Jake để poster - các Bí quyết là để gọi getSupportActionBar() đầu tiên, để " kích hoạt tạo các khung nhìn ".

Vì vậy, phương pháp onCreate() của tôi là:

protected void onCreate(Bundle arg0) 
{ 
    super.onCreate(arg0); 

    // allow window to show progress spinner in the action bar 
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    getSupportActionBar(); 
    setSupportProgressBarIndeterminateVisibility(false); 
} 

Cập nhật dựa trên bình luận từ Laux:

Hãy chắc chắn rằng nhập khẩu của bạn phản ánh com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS để làm việc này.

Dưới đây là một phần của import khối của tôi từ một ứng dụng có sử dụng mô hình này:

import com.actionbarsherlock.app.ActionBar; 
import com.actionbarsherlock.app.SherlockActivity; 
import com.actionbarsherlock.view.ActionProvider; 
import com.actionbarsherlock.view.Menu; 
import com.actionbarsherlock.view.MenuItem; 
import com.actionbarsherlock.view.Window; 
import com.actionbarsherlock.widget.ShareActionProvider; 

Đây là một điều rất tốt để ghi nhớ khi làm việc với ABS - nhiều hàng nhập khẩu Android bình thường của bạn cần được cập nhật để tham khảo thay vào đó là ABS. Có thể là một ý tưởng tốt để xem lại khối nhập của bạn, hoặc có thể loại bỏ nó hoàn toàn và để Eclipse xây dựng lại nó cho bạn (CTRL-SHIFT-O) đến thời điểm mà Eclipse sẽ nhắc bạn cho mỗi lần nhập mà ABS đã thu hồi lại.

Điều này cũng được giải thích bởi Glebbb trong his answer.

+0

Cảm ơn sự giúp đỡ.^_^ – Cjames

+1

Ngoài ra nếu vẫn không hoạt động, hãy thử thay thế requestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS); đến \t \t requestWindowFeature (com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS); – Cjames

0

Bạn cần gọi số supportRequestWindowFeature.

requestWindowFeature là phương pháp cuối cùng trên Activity và không thể được ghi đè lên.

+4

Nếu tôi sử dụng supportRequestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS); Nó nói rằng phương pháp này là không xác định. –

+0

Nhìn vào các chức năng có sẵn trong một SherlockActivity có: 'công thức boolean requestWindowFeature (int FEATUREID) '- mà xuất phát từ Hoạt động tiêu chuẩn của Android và ' công thức khoảng trống 'requestWindowFeature (dài FEATUREID)' - mà đến từ SherlockActivity Tôi không thể thấy phương thức 'supportRequestWindowFeature()'. – Radu

-1

Kiểm tra, nếu bạn đang sử dụng Theme.Sherlock.NoActionBar hoặc chủ đề không có thanh hành động tương tự cho hoạt động này. Trong phương pháp trường hợp setSupportProgressBarIndeterminateVisibility này không thành công cho tôi với

Caused by: java.lang.NullPointerException 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.updateProgressBars(ActionBarSherlockCompat.java:710) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.onIntChanged(ActionBarSherlockCompat.java:686) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.updateInt(ActionBarSherlockCompat.java:681) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setFeatureInt(ActionBarSherlockCompat.java:665) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setProgressBarIndeterminateVisibility(ActionBarSherlockCompat.java:637) 
at com.actionbarsherlock.app.SherlockFragmentActivity.setSupportProgressBarIndeterminateVisibility(SherlockFragmentActivity.java:282) 

Tôi đoán bạn nên sử dụng một hộp thoại tiến triển thay vì để chỉ tải quá trình hoặc thường xuyên Theme với thanh tiêu đề hoạt động và sau đó sử dụng phương pháp setProgressBarIndeterminateVisibility cho các nền tảng cũ.

4

Tôi chắc chắn bạn có thể đã tìm ra nó ngay bây giờ, nhưng thủ phạm có khả năng nhất là bạn bao gồm tệp sai vì quá dễ dàng để thực hiện tự động.

Thay thế bất kỳ nhập khẩu android.view.Window với com.actionbarsherlock.view.Window và các tính năng cần thiết sẽ làm việc.

+0

Điều này đã làm tôi thất vọng hàng giờ! Cảm ơn! – manavo

+0

Cảm ơn bạn! Tôi đã tìm kiếm điều này một lúc rồi. – eMich

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