有没有办法在 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/