这里已多次询问过,但我不知道为什么这对我不起作用。我的布局上有多个微调器,它们会根据选定的先前微调器值进行更新。我希望能够在同一个微调器上多次选择一个值。
我在使用此代码时遇到问题:
public class NDSpinner extends Spinner {
public NDSpinner(Context context)
{ super(context); }
public NDSpinner(Context context, AttributeSet attrs)
{ super(context, attrs); }
public NDSpinner(Context context, AttributeSet attrs, int defStyle)
{ super(context, attrs, defStyle); }
@Override public void
setSelection(int position, boolean animate)
{
boolean sameSelected = position == getSelectedItemPosition();
super.setSelection(position, animate);
if (sameSelected) {
// Spinner does not call the OnItemSelectedListener if the same item is selected, so do it manually now
getOnItemSelectedListener().onItemSelected(this, getSelectedView(), position, getSelectedItemId());
}
}
@Override public void
setSelection(int position)
{
boolean sameSelected = position == getSelectedItemPosition();
super.setSelection(position);
if (sameSelected) {
// Spinner does not call the OnItemSelectedListener if the same item is selected, so do it manually now
getOnItemSelectedListener().onItemSelected(this, getSelectedView(), position, getSelectedItemId());
}
}
}
这应该与我现有的代码一起使用,但由于某种原因,它不是。
我有多个微调器,这里只有一个表明我正在使用它:
vTypeSpinner = (NDSpinner) findViewById(R.id.typeSpinner);
这是我的XML显示我正在引用它:
<com.example.productguide.NDSpinner
android:id="@+id/typeSpinner"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignLeft="@+id/textView01"
android:layout_centerVertical="true"
android:layout_below="@+id/textView01" />
这是LogCat错误
12-27 10:05:06.165: E/AndroidRuntime(3089): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.productguide/com.example.productguide.PowersportsEquivalent}: android.view.InflateException: Binary XML file line #61: Error inflating class com.example.productguide.NDSpinner
以下是我之前因某些原因没有看到的更多LogCat:
12-27 10:05:06.165: E/AndroidRuntime(3089): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.productguide.NDSpinner" on path: DexPathList[[zip file "/data/app/com.example.productguide-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.productguide-2, /system/lib]]
答案 0 :(得分:0)
在微调器中有一个虚拟值,它总是第一个。并对旋转器进行一次验证检查,如果选择了适当与否。如果选择的值是虚拟值,则检查应该失败。