【问题标题】:setting Dropdown mode on an extended Spinner view在扩展 Spinner 视图上设置下拉模式
【发布时间】:2014-11-20 06:29:10
【问题描述】:

我正在扩展微调器以添加一些功能,我试图使微调器成为下拉菜单而不是对话框。所以我将微调器模式更改为下拉。

当我使用这个构造函数时,我得到一个异常

<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) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 在 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) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:492) 在 de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native 方法)在 de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631) 在 android.view.LayoutInflater.inflate(Native Method) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:397) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:353) 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:320) 在 android.app.Activity.setContentView(Activity.java:1895) 在 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) 在 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) 在 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);
}

【问题讨论】:

    标签: java android drop-down-menu android-spinner


    【解决方案1】:

    您的微调器 xml 文件的第 101 行似乎有错误。检查一切是否设置正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多