Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试使用基于2.1 SDK的ICS风格的NumberPicker?_Android_Android Widget - Fatal编程技术网

Android 尝试使用基于2.1 SDK的ICS风格的NumberPicker?

Android 尝试使用基于2.1 SDK的ICS风格的NumberPicker?,android,android-widget,Android,Android Widget,我正在开发一个基于Android 2.1的应用程序,在我的应用程序的一个页面上,需要一个numberpicker。我们知道android 2.1不包含numberpicker控件,所以我写了一个 我需要在Android 2.1上显示我的numberpicker版本,但是Android 4.0中ICS风格的numberpicker,为了实现这一目标,我使用了反射,当我的代码中检测到当前Build.version.SDK_INT>=14时,我反射目标平台的numberpicker,并将其动态添加到当

我正在开发一个基于Android 2.1的应用程序,在我的应用程序的一个页面上,需要一个numberpicker。我们知道android 2.1不包含numberpicker控件,所以我写了一个

我需要在Android 2.1上显示我的numberpicker版本,但是Android 4.0中ICS风格的numberpicker,为了实现这一目标,我使用了反射,当我的代码中检测到当前Build.version.SDK_INT>=14时,我反射目标平台的numberpicker,并将其动态添加到当前视图中

我的问题是,当我在安卓4.0平台上运行我的应用程序时,我可以反映numberpicker,但numberpicker风格似乎不是ICS风格,为什么


提前谢谢

如果你有耐心的话,你可能会回到港口。除此之外,为什么要使用反射?如果您将目标API设置为15,这就是您所需要的。在您的
布局
文件夹中,声明您的可选号码选择器。在
layout-v11
NumberPicker
在API 11或更高版本中提供)声明
android.widget.NumberPicker
。为每个人提供相同的ID,并在活动中使用以下内容:

private NumberPicker mNumPicker;
private SomeView mOldNumPicker;

public void onCreate(...) {
    // Use NumberPicker
    if (android.os.Build.VERSION.SDK_INT >= 11) {
        mNumPicker = findViewById(R.id.numpicker);
    } else {
        mOldNumPicker = findViewById(R.id.numpicker);
    }
}
这是因为您不需要反射,也不会因为访问不存在的API而遇到任何崩溃。从这里开始,您只需检查
if(mNumPicker==null)
if(mOldNumPicker==null)
,并确定基于此调用哪些方法。还有一个例子是一个