android - 编辑文本中的微调器

标签 android android-spinner

我有一个 Edittext,在它的右侧有一个可绘制的 [v],使它看起来像一个微调器。现在,我怎样才能做到这一点? 我会将 edittext 设置为可点击,然后当我点击它时,将弹出一个带有列表的 dialogfragment(看起来像一个微调器选项)

这可能吗?

   <android.support.design.widget.TextInputLayout
    android:id="@+id/tilAppCategory"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    >

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/edtAppCategory"
        android:hint="Category"
        android:fontFamily="sans-serif-light"
        android:textColorHint="@color/textColorHint"
        android:maxLines="1"
        android:gravity="center|start"
        android:inputType="textNoSuggestions"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="14sp"
        android:drawableEnd="@drawable/icon_spinner_down"
        android:focusableInTouchMode="true"
        android:clickable="true"
        />

</android.support.design.widget.TextInputLayout>

最佳答案

您可以在您的 XML 文件中执行以下操作:此处 android:drawableRight 您可以在 EditTextTextView 中设置左右顶部和底部图标> 在安道尔

<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:drawableRight="@drawable/ic_menu_share"/>

要像微调器一样显示列表,请使用 AutoCompleteTextView

Android AutoCompleteTextView是根据保留字补全单词,所以不需要写单词的所有字符。

Android AutoCompleteTextView 是一个可编辑的文本字段,它在下拉菜单中显示建议列表,用户只能从中选择一个建议或值。

Android AutoCompleteTextView 是 EditText 类的子类。 MultiAutoCompleteTextView 是 AutoCompleteTextView 类的子类。

Android AutoCompleteTextView Example Tutorial

您可以使用 Android PopupWindow Listview 示例。

/**
  * handle header listview onclick event
  */
 private OnClickListener showPopupWindow() {
  return new OnClickListener() {

   @Override
   public void onClick(View v) {
    PopupWindow popUp = popupWindowsort();
    popUp.showAsDropDown(v, 0, 0); // show popup like dropdown list
   }
  };
 }

 /**
  * show popup window method reuturn PopupWindow
  */
 private PopupWindow popupWindowsort() {

  // initialize a pop up window type
  popupWindow = new PopupWindow(this);

  ArrayList<String> sortList = new ArrayList<String>();
  sortList.add("A to Z");
  sortList.add("Z to A");
  sortList.add("Low to high price");

  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,
    sortList);
  // the drop down list is a list view
  ListView listViewSort = new ListView(this);

  // set our adapter and pass our pop up window contents
  listViewSort.setAdapter(adapter);

  // set on item selected
  listViewSort.setOnItemClickListener(onItemClickListener());

  // some other visual settings for popup window
  popupWindow.setFocusable(true);
  popupWindow.setWidth(250);
  // popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.white));
  popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);

  // set the listview as popup content
  popupWindow.setContentView(listViewSort);

  return popupWindow;
 }

在下面的链接中找到完整的实现:

Android PopupWindow Listview example .

关于android - 编辑文本中的微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42580330/

相关文章:

Android 微调器为空

android - MediaPlayer setDataSource 失败,状态 = 0x80000000 为 2.3.4 上的文件路径设置的铃声

android - 相机在纵向模式下拉伸(stretch)

android - 清除 Android 中的 cookie

android - 在类似 facebook 的 ListView / ScrollView 中自动播放视频

Android Spinner - How to position dropdown arrow as close to text as possible when options have different length?

android - Google map 问题上的自定义标记

android - 单击另一个微调器时在微调器中获取值

Android-如何在 AlertDialog 中使用 Spinner?

android - 由于 Android 中的微调器,两个 Activity 之间的转换滞后