使用SimonVT号码选择器并且无法充气xml

时间:2014-01-08 05:09:41

标签: java android xml

所以我正在使用SimonVT number picker尝试创建一个与姜饼一起使用的数字选择器。不幸的是,当我尝试将其设置为对话框时,它会在尝试充气xml时崩溃。老实说,我已经花了一段时间在这上面,并不能为我的爱情弄清楚。还有其他人吗?

这就是它崩溃的地方:

import net.simonvt.numberpicker.NumberPicker;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.View;

public class setSnoozeMethodDialog extends DialogFragment{

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    View view = getActivity().getLayoutInflater().inflate(R.layout.set_snooze_dialog, null);

    NumberPicker np = (NumberPicker) view.findViewById(R.id.numberPicker);
    np.setMaxValue(20);
    np.setMinValue(0);
    np.setFocusable(true);
    np.setFocusableInTouchMode(true);

    builder.setView(view);

    return builder.create();
}

这是一个无法充气的xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center">

<net.simonvt.numberpicker.NumberPicker
    android:id="@+id/numberPicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout>

这是错误

01-07 23:44:33.308: E/AndroidRuntime(623): FATAL EXCEPTION: main
01-07 23:44:33.308: E/AndroidRuntime(623): android.view.InflateException: Binary XML file line #8: Error inflating class net.simonvt.numberpicker.NumberPicker
01-07 23:44:33.308: E/AndroidRuntime(623):  at android.view.LayoutInflater.createView(LayoutInflater.java:518)
01-07 23:44:33.308: E/AndroidRuntime(623):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
01-07 23:44:33.308: E/AndroidRuntime(623):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
01-07 23:44:33.308: E/AndroidRuntime(623):  at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
01-07 23:44:33.308: E/AndroidRuntime(623):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
01-07 23:44:33.308: E/AndroidRuntime(623):  at     android.view.LayoutInflater.inflate(LayoutInflater.java:276)

我已将这些放在我的清单中

        <activity
        android:name="net.simonvt.numberpicker.samples.DarkThemeActivity"
        android:theme="@style/SampleTheme" />
        <activity
        android:name="net.simonvt.numberpicker.samples.LightThemeActivity"
        android:theme="@style/SampleTheme.Light" />

这是在我的theme.xml中的值文件夹

<resources>

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

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

1 个答案:

答案 0 :(得分:2)

想出来。我需要添加

<resources>

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

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

到我的样式文件,而不是主题文件。