android - xml文件中的MultiAutoCompleteTextView setDropDownBackgroundResource

标签 android android-layout autocompletetextview

有没有办法在 xml 布局中为 MultiAutoCompleteTextView 设置下拉背景?还是必须始终以编程方式完成?

最佳答案

在您为 MultiAutoComplete 创建的适配器中,使用自定义布局文件而不是 android 的 simple_list_item_1

通过这种方式,您将能够更改下拉菜单的布局并添加您想要的背景。

在下面找到一个使用自定义 xml 布局的 MultiAutoComplete 的清晰示例:

主 Activity ,MainActivity.java:

public class MainActivity extends Activity {

 private MultiAutoCompleteTextView multiAutoComplete;
 private ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // get the string-array defined in strings.xml
    String[] items = getResources().getStringArray(R.array.itemlist);

    //set your custom xml file to be able to edit it
    adapter = new ArrayAdapter<String>(this,android.R.layout.custom_drop_down_menu,items);

    //multiAutoComplete field
    multiAutoComplete = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoComplete);

    // set adapter for the multi auto complete fields
    multiAutoComplete.setAdapter(adapter);

    // specify the minimum type of characters before drop-down list is shown
    multiAutoComplete.setThreshold(2);

    // comma to separate the different colors
    multiAutoComplete.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

    //toast message when the user clicks an item of the drop-down list
    multiAutoComplete.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
             Toast.makeText(getBaseContext(),"you added: "+arg0.getItemAtPosition(arg2),Toast.LENGTH_LONG).show();
        }
    });
}

自定义 MultiAutoComplete 布局,custom_drop_down_menu.xml:

 <!-- add your background image here -->   

 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
    android:paddingLeft="6dp"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:textColor="#000"
    android:background = "@drawable/imagename"/>

字符串文件(添加您的字符串数组项),Strings.xml:

<resources>
    <string name="multi_auto_complete_items">Multi Auto Complete items</string>

    <string-array name="itemlist">
        <item >item1</item>
        <item >item2</item>
        <item >item3</item>
        <item >item4</item>
        <item >item5</item>
     </string-array>

</resources>

主要 Activity 布局,activity_main.xml:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >

        <TextView
          android:id="@+id/text2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginTop="30dp"
          android:text="@string/multi_auto_complete_items"
          android:textAppearance="?android:attr/textAppearanceMedium" />

       <MultiAutoCompleteTextView
          android:id="@+id/multiAutoComplete"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_below="@+id/text2"
          android:layout_marginTop="20dp"
          android:ems="13" />

</RelativeLayout>

关于android - xml文件中的MultiAutoCompleteTextView setDropDownBackgroundResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468876/

相关文章:

android - Android Studio 插件自动安装

android - 使用按钮单击控制 ImageView

java - Android:如何根据首先选择的单选按钮启用/禁用复选框

Android AutoCompleteTextview Dropdown 只允许用户选择

android - AutoCompleteTextView 下拉列表中的项目不可见。如何改变他们的颜色..?

java - 如何将 Android 应用程序中的地址发送到 Google map

java - 如何通过 Android 模拟器访问计算机文件以进行开发

android - AutocompleteTextView 建议列表上升

android - 尝试更改设备配置时找不到 ID XXX 的 View

android - 如何在选择时突出显示菜单项?