2014-09-25 55 views
0

我在擴展微調以添加一些功能,我試圖讓微調控件成爲下拉菜單而不是對話框。所以我正在改變微調模式下降。在擴展的Spinner視圖中設置下拉模式

當我使用這個構造函數,我得到一個異常

<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>()); 
     ... 
    } 

產生的原因:在 錯誤充氣類mypackage.mypackage.MultiSelectionSpinner:android.view.InflateException:二進制XML文件中的行#101 Android.view.LayoutInflater.createView(LayoutInflater.java:603)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)at android。 view.LayoutInflater.rInflate(LayoutInflater。的java:758)在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758)在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758)在 android.view.LayoutInflater.rInflate(LayoutInflater.java: 758)留在在 de.robv.android.xposed.XposedBridge.handleHookedMethod de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(母語 方法) android.view.LayoutInflater.inflate(LayoutInflater.java:492)( XposedBridge.java:631) at android.view.LayoutInflater.inflate(Native Method)at android.view.LayoutInflater.inflate(LayoutInflater.java:397)at android.view.LayoutInflater.inflate(LayoutInflater.java:353 )在 com.android.internal.pol icy.impl.PhoneWindow.setContentView(PhoneWindow.java:320) at 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) 在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) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293) ... 12 more引起來自:java.lang。 NoSuchMethodException: java.lang.Class.getConstructor(Class.java:397)java.lang.Class.getConstructorOrMethod(Class.java:423) [class android.content.Context,interface android.util.AttributeSet] java.lang.Class.getConstructor(Class.java:397)在 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

看起來好像在你的微調xml文件的第101行有一個錯誤。檢查一切是否設置正確。