2013-04-06 26 views
8

Tôi đã ở đây trong nhiều ngày, và tôi đang ở thời điểm từ bỏ, vì vậy, mọi trợ giúp đều được đánh giá cao!Android - Lỗi lạm phát lớp SimonVT NumberPicker trong bố cục xml của tôi

Tôi đã cố gắng triển khai simonVT numberpicker trong ứng dụng Android của mình. Hoàn toàn mới cho android, do đó, bao gồm cả thư viện, tham khảo thư viện này và nhận được tất cả mọi thứ để biên dịch đã được một vài nhiệm vụ trong chính nó. Bây giờ tôi cuối cùng đã có tất cả mọi thứ biên soạn tôi nhận được lỗi sau khi chạy:

04-06 10:58:37.126: E/AndroidRuntime(14324): java.lang.RuntimeException: 
Unable to start activity ComponentInfo{com.example.goalminder/com.example.goalminder.AddGoal}: 
android.view.InflateException: Binary XML file line #81: 
Error inflating class net.simonvt.numberpicker.NumberPicker 

Đây là việc khai trương bố trí của tôi:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/net.simonvt.numberpicker" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

NB - Các 'xmlns: Ứng dụng' phần trên có một dấu cảnh báo màu vàng - nó không được sử dụng. Tôi đã bao gồm điều này cho mỗi câu trả lời stackoverflow khác. một vấn đề tương tự. Đã để lại để ngăn chặn đề xuất này.

Đây là xml cho numberpicker:

<net.simonvt.numberpicker.NumberPicker   
    android:id="@+id/dayPicker" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="50dp" 
    android:layout_marginRight="10dp" 
    android:layout_weight="1"/> 

Tôi đã bao gồm các chủ đề theo hướng dẫn của Simon trong tập tin chủ đề của tôi. Tôi đã không thực sự chắc chắn những gì tên để cho nó, vì vậy tôi gọi nó là 'NumberPicker':

<resources> 

    <!-- Copy one of these attributes to your own theme (choose either dark or light). 
     <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
     <item name="numberPickerStyle">@style/NPWidget.Holo.Light.NumberPicker</item> 
    --> 
    <style name="NumberPicker" parent="android:Theme"> 
     <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
    </style> 

    <style name="NumberPicker" parent="android:Theme.Light"> 
     <item name="numberPickerStyle">@style/NPWidget.Holo.Light.NumberPicker</item> 
    </style> 

</resources> 

Tôi cũng đã thêm dòng sau vào manifest Android của tôi như một đứa trẻ của ứng dụng:

<activity 
    android:name="net.simonvt.numberpicker.Numberpicker" /> 
<activity 
    android:name="net.simonvt.numberpicker.Scroller" /> 

Tôi đã được trên tất cả các stackoverflow, vì vậy những gì chúng tôi có ở trên là một cách tiếp cận phân tán súng của tất cả mọi thứ tôi đã thấy đề nghị như vậy. Như đã nói trước đây, tôi đang lúng túng với điều này và gần với việc thực hiện một danh sách xấu tiêu chuẩn.

NB - Tôi có tất cả điều này làm việc với việc triển khai Android gốc của Numberpicker. Tuy nhiên, tôi muốn sử dụng phiên bản backport của Simon VT vì tôi sẽ tìm cách hỗ trợ API < 11, bao gồm Gingerbread mà tôi tin rằng có 39.7% distribution. Xin vui lòng cho tôi biết nếu bạn nghĩ rằng tôi không cần phải hỗ trợ này xa trở lại.

+0

Bất kỳ tin tức về vấn đề này? Im có cùng một vấn đề. – M4tchB0X3r

+1

Xin lỗi vì đã trả lời muộn. Tôi đã đi cho việc sử dụng thực hiện Numberpicker bản địa. Tôi đã chấp nhận phản ứng dưới đây mặc dù cũng nhận được phản hồi tương tự từ SimonVT trên github của mình. Cho một shot. – Ste77

Trả lời

11

bạn cần thêm chủ đề cho các hoạt động trên AndroidManifest.xml: Ví dụ:

<activity android:name="yourActivity" android:theme="@style/SampleTheme.Light"/> 
+0

Tôi đang gặp vấn đề tương tự. Tôi đang cố gắng sử dụng NumberPicker trong một Dialog và tôi đang sử dụng getActivity(). SetTheme (R.style.AppBaseTheme); nhưng không phải. Bất kỳ ý tưởng? Cảm ơn! – emiliosg

+0

Emiliosg không cần phải làm thêm bất kỳ công việc nào, chỉ cần đặt chủ đề cho hoạt động mà hộp thoại sẽ được hiển thị trong đó –

0

Hãy thử thay thế net.simonvt.numberpicker.NumberPicker với com.your.package.NumberPicker.

2

Xem Simon ghi chú sử dụng:

Yêu cầu thêm một thuộc tính duy nhất để chủ đề của bạn. Kiểm tra ứng dụng mẫu để biết cách thực hiện.

values/theme.xml:

<style name="SampleTheme" parent="android:Theme"> 
    <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
</style> 

values-v11/themes.xml:

<style name="SampleTheme" parent="android:Theme.Holo"> 
    <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
</style> 
0

Tôi đã có thực tế cùng một vấn đề, tôi đã nhận được báo lỗi

11-18 21:13:18.627: W/ResourceType(13799): No package identifier when getting value for resource number 0x00000000 

Cuối cùng tôi nhận ra rằng tôi đã có để thêm phong cách mục vào riêng định nghĩa phong cách của tôi (như Paul Lammertsma cho thấy ở trên) như tôi đã chỉ cần sao chép phong cách/dán SimonVT, mà tất nhiên ứng dụng của tôi đã không sử dụng:

<style parent="@android:style/Theme.Holo.NoActionBar.Fullscreen" name="NoActionBar"> 
    <item name="numberPickerStyle">@style/NPWidget.Holo.NumberPicker</item> 
</style> 

Sau đó, sau khi nó vẫn không làm việc, Tôi thấy tôi hoàn toàn bị mất một tập tin themes.xml (tôi có ba cho các cấp API khác nhau).

3

Nếu bạn không muốn tạo chủ đề cho dự án của riêng mình, bạn có thể thực hiện như sau với mã nguồn của trình đánh số để đặt để sử dụng chủ đề mặc định NPWidget_Holo_numberPicker.

Thay thế các nhà xây dựng như sau

public NumberPicker(Context context, AttributeSet attrs) { 
    this(context, attrs, R.style.NPWidget_Holo_NumberPicker); 
} 

sau đó thay đổi sự phân công của TypedArray attributesArray như sau:

TypedArray attributesArray = context.obtainStyledAttributes(
      attrs, R.styleable.NumberPicker, 0, defStyle); 
+0

cảm ơn rất nhiều! làm việc 100% – Guihgo

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