android自定义Spinner下拉菜单和AutoCompleteTextView自动显示的(下拉列表框)样式

在Android中Spinner就是下拉菜单和AutoCompleteTextView自动显示的样式,它相当于HTML中的<select>标签。
Android中提供的Spinner Widget下拉菜单和AutoCompleteTextView自动显示已经非常好用了,样式也适用,
不过我们还是可以通过定义xml的方式来改变下拉菜单的样式。
在layout目录下新建一个xml文件,名字随便(我这里叫activity_main.xml)。在这个文件里面可以定义下拉菜单的样式
我们这里采用TextView来实现。

activity_main.xml:

View Code
 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

 2     xmlns:tools="http://schemas.android.com/tools"

 3     android:layout_width="match_parent"

 4     android:layout_height="match_parent"

 5     android:background="#000000"

 6     tools:context=".MainActivity" >

 7 

 8     <AutoCompleteTextView

 9         android:id="@+id/actv"

10         android:layout_width="fill_parent"

11         android:layout_height="wrap_content" />

12 

13 </RelativeLayout>

自定义的样式就是在layout下建立一个xml文件,名字这里我随便起。代码如下:

down.xml:

View Code
1 <TextView xmlns:android="http://schemas.android.com/apk/res/android"

2     xmlns:tools="http://schemas.android.com/tools"

3     android:id="@+id/contentTextView"

4     android:layout_width="fill_parent"

5     android:layout_height="wrap_content"

6     android:background="#F4FDFF"

7     android:textColor="#000000" >

8 

9 </TextView>

在activity中的调用方法如下:

View Code
 1 package com.example.autocompletetextvewtest;

 2 

 3 import java.util.List;

 4 

 5 import android.app.Activity;

 6 import android.os.Bundle;

 7 import android.view.Menu;

 8 import android.widget.ArrayAdapter;

 9 import android.widget.AutoCompleteTextView;

10 

11 public class MainActivity1 extends Activity {

12     private AutoCompleteTextView actv;

13 

14     @Override

15     protected void onCreate(Bundle savedInstanceState) {

16         super.onCreate(savedInstanceState);

17         setContentView(R.layout.activity_main);

18         String[] strings = new String[] { "北京", "北京西站", "北京南站", "上海", "上海浦东机场" };

19         actv = (AutoCompleteTextView) findViewById(R.id.actv);

20         // 第二个参数是样式的Layout布局id,第三个参数是:显示具体样式的TextView的id

21         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

22                 R.layout.down, R.id.contentTextView, strings);

23         actv.setThreshold(1);

24         actv.setAdapter(adapter);

25     }

26 

27     @Override

28     public boolean onCreateOptionsMenu(Menu menu) {

29         getMenuInflater().inflate(R.menu.activity_main, menu);

30         return true;

31     }

32 

33 }

这就完事了!

你可能感兴趣的:(android自定义Spinner下拉菜单和AutoCompleteTextView自动显示的(下拉列表框)样式)