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

来源:互联网 发布:mac vim python 配置 编辑:程序博客网 时间:2024/04/29 10:07

在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     @Override15     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的id21         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     @Override28     public boolean onCreateOptionsMenu(Menu menu) {29         getMenuInflater().inflate(R.menu.activity_main, menu);30         return true;31     }32 33 }
复制代码
原创粉丝点击