1.AutoCompleteTextView 自动补全文本框:
下面说一下 简单的一个自动补全:
activity_main:
android:layout_height="wrap_content"
android:id="@+id/actv_main_auto"
android:completionThreshold="1" //表示当你输入第一个字符时就会弹出提示:
/>
MainActivity:
AutoCompleteTextView autoCompleteTextView= (AutoCompleteTextView) findViewById(R.id.actv_main_auto);
//获得字符串数组:这是我自动补全中的一些资料:
String data []=getResources().getStringArray(R.array.data);
在values文件夹的Strings下面:
//适配器: 布局你也可以用系统自带的布局:
ArrayAdapter adapter=new ArrayAdapter(this,R.layout.item_actve,data);
//给控件设置配置器:
autoCompleteTextView.setAdapter(adapter);
接下来 ,就可以直接在界面的文本框里输入就可以出现自动补全的功能:
MultiAutoCompleteTextView,是 AutoCompleteTextView的加强版,一时就是可以在文本框选了一个之后,再选一个,
与上面代码基本一样,只需要再加上:
//设置多个自动完成文本框的分隔符:默认字符是; ,
MultiAutoCompleteTextView.Tokenizer tokenizer=new MultiAutoCompleteTextView.CommaTokenizer();
multiautoCompleteTextView.setTokenizer(tokenizer);
2.Spinner 下拉框:下面给大家说一下用下拉框实现的简单的二级联动:
activity_second layout布局文件':
android:layout_height="wrap_content"
android:id="@+id/sp_second_spinner01"
>
android:layout_height="wrap_content"
android:id="@+id/sp_second_spinner02"
>
SecondActivity中:
public class SecondActivity extends AppCompatActivity {
private Spinner spinner1;
private Spinner spinner2;
private String sheng;
private Map
//这是secondactivity继承之后要重写的方法:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second); //加载界面
spinner1 = (Spinner) findViewById(R.id.sp_second_spinner01);
spinner2 = (Spinner) findViewById(R.id.sp_second_spinner02);
//获得省份:
final String province []=getResources().getStringArray(R.array.Province);
//获得市区:
String hunan [] = getResources().getStringArray(R.array.hunan);
String guangxi [] = getResources().getStringArray(R.array.guangxi);
String guangdong []= getResources().getStringArray(R.array.guangdong);
String zhejiang []= getResources().getStringArray(R.array.zhejiang);
//配置器: 这是我的布局:你可以使用的系统布局:
ArrayAdapter adapter=new ArrayAdapter(this,R.layout.item_actve,province);
我的item_actve布局文件:
android:layout_height="match_parent"
android:background="#00ff1e"
android:textColor="#ffffff"
>
//给控件添加配置器:
spinner1.setAdapter(adapter);
//将他们放入map里面:
mp = new HashMap<>();
mp.put(province[0], hunan);
mp.put(province[1], guangxi);
mp.put(province[2], guangdong);
mp.put(province[3], zhejiang);
//给spinner设置选择事件
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
sheng=province[position];
geishi(sheng);
}
@Override
public void onNothingSelected(AdapterView> parent) {
}
});
}
public void geishi(String sheng){
Toast.makeText(SecondActivity.this,"省份:"+sheng,Toast.LENGTH_SHORT).show();
String shi []=mp.get(sheng);
//配置器:
ArrayAdapter adapter2=new ArrayAdapter(this,R.layout.item_actve,shi);
//给控件添加配置器:
spinner2.setAdapter(adapter2);
}
这是我values里面Strings的一些文件:二级联动所用到的资料:
3.ListView:
在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。
android:layout_height="wrap_content"
android:id="@+id/lv_main_listview"
>
MainActivity中的代码:
//获得控件
ListView listView= (ListView) findViewById(R.id.lv_main_listview);
//设置数据:
String titles[]={"愤怒的老鸟","Tomcat","KFC","大黑牛","旺财","中国龙","北京烤鸭","蜡笔小新","7秒小金鱼","九尾狐"};
//设置适配器:
ArrayAdapter adapter2=new ArrayAdapter(this,R.layout.item_actv,titles);
//给控件设置适配器:
listView.setAdapter(adapter);
注意:现在的listview只是一排字符,如果在字符的前面加一些图片,则需要用到SimpleAdapter 简单适配器:
下面来说一下简单适配器
这些是我的项目中的一些图片:
int images[]={R.drawable.bird,R.drawable.cat,R.drawable.chicken,R.drawable.cow,R.drawable.dog,R.drawable.dragon,R.drawable.duck,R.drawable.elephant,R.drawable.fish,R.drawable.fox};
//集合:将图片与标题放入集合中:
List
//设置简单配置起=器 下面用到的是系统自带的布局:
SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,android.R.layout.activity_list_item,new String[]{"image","title"},new int[]{android.R.id.icon,android.R.id.text1});
//给listview设置简单配置器:
listView.setAdapter(simpleAdapter);
//给listview设置点击事件:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this,"你选择的是:"+titles[position],Toast.LENGTH_SHORT).show();
}
});
好了!!!