我正在扩展微调器以添加一些功能,我试图使微调器成为下拉而不是对话框。所以我正在改变微调模式下降。
当我使用这个构造函数时,我得到一个异常
<mypackage.mypackage.MultiSelectionSpinner
android:id="@+id/my_spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:spinnerMode="dropdown"
android:layout_weight="1"
android:padding="10dp" />
mySpinner = (MultiSelectionSpinner) findViewById(R.id.my_spinner);
public class MultiSelectionSpinner extends Spinner{
public MultiSelectionSpinner(Context context, AttributeSet attrs,int defStyle,int mode) {
super(context, attrs,defStyle,mode);
simple_adapter = new CustomerMultiSelectionSpinnerAdapter(context,
R.layout.customer_spinner_adapter_view, new ArrayList<String>() );
...
}
引起:android.view.InflateException:二进制XML文件行#101: 在mypackage.mypackage.MultiSelectionSpinner类中输出错误 android.view.LayoutInflater.createView(LayoutInflater.java:603)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:755)at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)at android.view.LayoutInflater.inflate(LayoutInflater.java:492)at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(母语 方法)at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631) 在android.view.LayoutInflater.inflate(Native Method)中 android.view.LayoutInflater.inflate(LayoutInflater.java:397)at android.view.LayoutInflater.inflate(LayoutInflater.java:353)at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:320) 在android.app.Activity.setContentView(Activity.java:1895)at android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:217) 在 android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:110) 在 android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:77) at mypackage.mypackage.MainActivity.onCreate(MainActivity.java:63)(基本上是声明mySpinner =(MultiSelectionSpinner)findViewById(R.id.my_spinner);) android.app.Activity.performCreate(Activity.java:5133)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293) ... 12更多引起:java.lang.NoSuchMethodException: [类android.content.Context,接口android.util.AttributeSet] 在java.lang.Class.getConstructorOrMethod(Class.java:423)at java.lang.Class.getConstructor(Class.java:397)at android.view.LayoutInflater.createView(LayoutInflater.java:568)... 还有33个
然而,除了微调器处于对话模式
之外,这很有效public MultiSelectionSpinner(Context context, AttributeSet attrs) {
super(context, attrs);
simple_adapter = new CustomerMultiSelectionSpinnerAdapter(context,
R.layout.customer_spinner_adapter_view, new ArrayList<String>() );
super.setAdapter(simple_adapter);
}
答案 0 :(得分:0)
您的spinner xml文件中的第101行似乎有错误。检查是否所有设置都正确。