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 }

这就完事了!

posted on 2013-01-24 17:56  loonggg  阅读(2571)  评论(0编辑  收藏  举报

导航