很多网上的教程介绍的都是怎么实现下拉列表,我想着一步每个人都会,但是怎么实现它的监听机制呢?本文为大家详细讲解。
1.首先拉出来一个控件
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_x="5dp"
android:layout_y="398dp"
android:entries="@array/ctype"></Spinner>
2.然后新建arrays.xml文件,里面的内容有:
<?xml version="1.0" encoding="utf-8"?>
<item>按ID查询</item>
<item>按序号查询</item>
<item>按公司名称查询</item>
<item>按序列号查询</item>
<item>按时间查询</item>
</string-array>
3.mainactivity里面的代码: Spinner spinner = (Spinner) findViewById(R.id.spinner);//获取下拉列表 //下拉列表选择框的事件监听器 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String result = parent.getItemAtPosition(position).toString();//获取选项卡的值
Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show();//显示被选中的值
switch (result){
case "按ID查询":
btnSearch_bit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String key = etSearch.getText().toString();//获取要查询的姓名
//query("user",new String[]{"id","name"},"id=?",new String[]{"1"},null,null,null)
Cursor c = dbOpenHelper.getReadableDatabase().query("dict", null, "ID=?", new String[]{key}, null, null, null);
//创建ArrayList对象,用于保存查询输出的结果
ArrayList<Map<String, String>> r = new ArrayList<Map<String, String>>();// 创建一个结果集 两个String类型
while (c.moveToNext()) {
//用while循环一直判断,当下一条为假时,我们的游标循环也就结束了
//cursor.movetonext 定义一个游标 它的作用是将游标向下挪动一位 判断当前游标位置的下一条还有没有数据 如果有 就返回真 如果无 就返回假
Map<String, String> map = new HashMap<>(); //新开辟一个map的集合空间
map.put("_id", c.getString(0));
map.put("ID", c.getString(1));
map.put("xuliehao", c.getString(2));
map.put("time", c.getString(3));
map.put("name", c.getString(4));
r.add(map);//在XML文件resultList 显示
//定义一个simpleAdapter,供列表项使用
}
if (r == null || r.size() == 0) {
Toast.makeText(MainActivity.this, "查无此数据", Toast.LENGTH_LONG).show();
} else {
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, r, R.layout.result_main,
new String[]{"_id", "ID", "xuliehao", "time", "name"}, new int[]{
R.id.xuhao1, R.id.ID1, R.id.xuliehao1, R.id.time1, R.id.name1});
listView.setAdapter(simpleAdapter);
}}});
break;
case "按序号查询":
btnSearch_bit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String key = etSearch.getText().toString();//获取要查询的姓名
//query("user",new String[]{"id","name"},"id=?",new String[]{"1"},null,null,null)
Cursor c = dbOpenHelper.getReadableDatabase().query("dict", null, "_id=?", new String[]{key}, null, null, null);
//创建ArrayList对象,用于保存查询输出的结果
ArrayList<Map<String, String>> r = new ArrayList<Map<String, String>>();// 创建一个结果集 两个String类型
while (c.moveToNext()) {
//用while循环一直判断,当下一条为假时,我们的游标循环也就结束了
//cursor.movetonext 定义一个游标 它的作用是将游标向下挪动一位 判断当前游标位置的下一条还有没有数据 如果有 就返回真 如果无 就返回假
Map<String, String> map = new HashMap<>(); //新开辟一个map的集合空间
map.put("_id", c.getString(0));
map.put("ID", c.getString(1));
map.put("xuliehao", c.getString(2));
map.put("time", c.getString(3));
map.put("name", c.getString(4));
r.add(map);//在XML文件resultList 显示
//定义一个simpleAdapter,供列表项使用
}
if (r == null || r.size() == 0) {
Toast.makeText(MainActivity.this, "查无此数据", Toast.LENGTH_LONG).show();
} else {
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, r, R.layout.result_main,
new String[]{"_id", "ID", "xuliehao", "time", "name"}, new int[]{
R.id.xuhao1, R.id.ID1, R.id.xuliehao1, R.id.time1, R.id.name1});
listView.setAdapter(simpleAdapter);
}}});
break;
case "按公司名称查询":
//查询其中的某一个,按公司名称
btnSearch_bit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String key = etSearch.getText().toString();//获取要查询的姓名
//query("user",new String[]{"id","name"},"id=?",new String[]{"1"},null,null,null)
Cursor c = dbOpenHelper.getReadableDatabase().query("dict", null, "name=?", new String[]{key}, null, null, null);
//创建ArrayList对象,用于保存查询输出的结果
ArrayList<Map<String, String>> r = new ArrayList<Map<String, String>>();// 创建一个结果集 两个String类型
while (c.moveToNext()) {
//用while循环一直判断,当下一条为假时,我们的游标循环也就结束了
//cursor.movetonext 定义一个游标 它的作用是将游标向下挪动一位 判断当前游标位置的下一条还有没有数据 如果有 就返回真 如果无 就返回假
Map<String, String> map = new HashMap<>(); //新开辟一个map的集合空间
map.put("_id", c.getString(0));
map.put("ID", c.getString(1));
map.put("xuliehao", c.getString(2));
map.put("time", c.getString(3));
map.put("name", c.getString(4));
r.add(map);//在XML文件resultList 显示
//定义一个simpleAdapter,供列表项使用
}
if (r == null || r.size() == 0) {
Toast.makeText(MainActivity.this, "查无此数据", Toast.LENGTH_LONG).show();
} else {
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, r, R.layout.result_main,
new String[]{"_id", "ID", "xuliehao", "time", "name"}, new int[]{
R.id.xuhao1, R.id.ID1, R.id.xuliehao1, R.id.time1, R.id.name1});
listView.setAdapter(simpleAdapter);
}}});
break;
case "按序列号查询":
btnSearch_bit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String key = etSearch.getText().toString();//获取要查询的姓名
//query("user",new String[]{"id","name"},"id=?",new String[]{"1"},null,null,null)
Cursor c = dbOpenHelper.getReadableDatabase().query("dict", null, "xuliehao=?", new String[]{key}, null, null, null);
//创建ArrayList对象,用于保存查询输出的结果
ArrayList<Map<String, String>> r = new ArrayList<Map<String, String>>();// 创建一个结果集 两个String类型
while (c.moveToNext()) {
//用while循环一直判断,当下一条为假时,我们的游标循环也就结束了
//cursor.movetonext 定义一个游标 它的作用是将游标向下挪动一位 判断当前游标位置的下一条还有没有数据 如果有 就返回真 如果无 就返回假
Map<String, String> map = new HashMap<>(); //新开辟一个map的集合空间
map.put("_id", c.getString(0));
map.put("ID", c.getString(1));
map.put("xuliehao", c.getString(2));
map.put("time", c.getString(3));
map.put("name", c.getString(4));
r.add(map);//在XML文件resultList 显示
//定义一个simpleAdapter,供列表项使用
}
if (r == null || r.size() == 0) {
Toast.makeText(MainActivity.this, "查无此数据", Toast.LENGTH_LONG).show();
} else {
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, r, R.layout.result_main,
new String[]{"_id", "ID", "xuliehao", "time", "name"}, new int[]{
R.id.xuhao1, R.id.ID1, R.id.xuliehao1, R.id.time1, R.id.name1});
listView.setAdapter(simpleAdapter);
}}});
break;
case "按时间查询":
btnSearch_bit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String key = etSearch.getText().toString();//获取要查询的姓名
//query("user",new String[]{"id","name"},"id=?",new String[]{"1"},null,null,null)
Cursor c = dbOpenHelper.getReadableDatabase().query("dict", null, "time=?", new String[]{key}, null, null, null);
//创建ArrayList对象,用于保存查询输出的结果
ArrayList<Map<String, String>> r = new ArrayList<Map<String, String>>();// 创建一个结果集 两个String类型
while (c.moveToNext()) {
//用while循环一直判断,当下一条为假时,我们的游标循环也就结束了
//cursor.movetonext 定义一个游标 它的作用是将游标向下挪动一位 判断当前游标位置的下一条还有没有数据 如果有 就返回真 如果无 就返回假
Map<String, String> map = new HashMap<>(); //新开辟一个map的集合空间
map.put("_id", c.getString(0));
map.put("ID", c.getString(1));
map.put("xuliehao", c.getString(2));
map.put("time", c.getString(3));
map.put("name", c.getString(4));
r.add(map);//在XML文件resultList 显示
//定义一个simpleAdapter,供列表项使用
}
if (r == null || r.size() == 0) {
Toast.makeText(MainActivity.this, "查无此数据", Toast.LENGTH_LONG).show();
} else {
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, r, R.layout.result_main,
new String[]{"_id", "ID", "xuliehao", "time", "name"}, new int[]{
R.id.xuhao1, R.id.ID1, R.id.xuliehao1, R.id.time1, R.id.name1});
listView.setAdapter(simpleAdapter);
}}});
break;
default:
btnSearch_bit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String key = etSearch.getText().toString();//获取要查询的姓名
//query("user",new String[]{"id","name"},"id=?",new String[]{"1"},null,null,null)
Cursor c = dbOpenHelper.getReadableDatabase().query("dict", null, "ID=?", new String[]{key}, null, null, null);
//创建ArrayList对象,用于保存查询输出的结果
ArrayList<Map<String, String>> r = new ArrayList<Map<String, String>>();// 创建一个结果集 两个String类型
while (c.moveToNext()) {
//用while循环一直判断,当下一条为假时,我们的游标循环也就结束了
//cursor.movetonext 定义一个游标 它的作用是将游标向下挪动一位 判断当前游标位置的下一条还有没有数据 如果有 就返回真 如果无 就返回假
Map<String, String> map = new HashMap<>(); //新开辟一个map的集合空间
map.put("_id", c.getString(0));
map.put("ID", c.getString(1));
map.put("xuliehao", c.getString(2));
map.put("time", c.getString(3));
map.put("name", c.getString(4));
r.add(map);//在XML文件resultList 显示
//定义一个simpleAdapter,供列表项使用
}
if (r == null || r.size() == 0) {
Toast.makeText(MainActivity.this, "查无此数据", Toast.LENGTH_LONG).show();
} else {
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, r, R.layout.result_main,
new String[]{"_id", "ID", "xuliehao", "time", "name"}, new int[]{
R.id.xuhao1, R.id.ID1, R.id.xuliehao1, R.id.time1, R.id.name1});
listView.setAdapter(simpleAdapter);
}}});
break;
}
}//方法结束
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});//下拉事件触发结束
各位小伙伴,是不是很激动,别忘了加群,多多支持!