在微调器中无法选择项目(自定义微调器适配器)

时间:2014-02-05 06:36:55

标签: android android-layout android-spinner

我在android应用程序中使用自定义spinner适配器用于颜色spinner。下拉工作正常。但是一旦我从微调器中选择了一个颜色(项目),它就不可选择了。此外,我不需要显示所选项目。我只想识别所选颜色而不显示它。

以下是 CustomSpinnerAdapter:

的代码
@Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        TextView rowView=null;
        if(convertView == null){
            convertView=inflater.inflate(R.layout.spinner_layout, null);
        }
        rowView=(TextView) convertView.findViewById(R.id.spinnerColorview);
        rowView.setBackgroundColor(Color.parseColor(itemList.get(position)));

        return convertView;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView rowView=null;
        if(convertView == null){
            convertView=inflater.inflate(R.layout.spinner_layout, null);
        }
        rowView=(TextView) convertView.findViewById(R.id.spinnerColorview);
        rowView.setBackgroundColor(Color.parseColor(itemList.get(position)));

        return convertView;

    }

EDIT:更多信息

我在spinner中的下拉列表无法选择。当我点击微调器时,它显示列表。但是当我从该列表中选择一个项目时,没有任何反应。我无法识别所选项目。

当我在getView(int position, View convertView, ViewGroup parent)方法中打印位置时,它会打印所有项目ID。

我只需要识别所选项目,我不需要像通常那样在旋转器的顶部显示它。这是我的spinner_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:clickable="true"
    android:orientation="horizontal"
    android:paddingLeft="40dp"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/spinnerColorview"
        android:layout_width="200px"
        android:layout_height="50px"
        android:clickable="true"
        android:gravity="center_vertical"
         >
    </TextView>
</LinearLayout>

2 个答案:

答案 0 :(得分:13)

您需要在自定义android:descendantFocusability="blocksDescendants"的布局文件中添加Spinner,或在每个视图中添加android:focusable="false"。如果自定义Spinner中的任何视图具有focusable视图,则onitemclick不起作用。

答案 1 :(得分:0)

我在文本视图中添加了style="?android:attr/spinnerItemStyle",但它确实有效。不确定最佳解决方案,但它是一个开始和快速解决方案。

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
      style="?android:attr/spinnerItemStyle"
      android:id="@+id/TextView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:padding="8dp"
      android:ellipsize="end"
      android:gravity="left|center"
      android:singleLine="true"
      android:text="Option One"
      android:textColor="@color/Petrol"
      android:textSize="@dimen/font_size_big"
      android:textStyle="bold"/>