一:创建Database继承SQLiteOpenHelper,在第一次创建数据库时将模拟数据插入数据库
package com.example.test.utils;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class Database extends SQLiteOpenHelper {
private SQLiteDatabase db;
public Database(Context context) {
super(context, "test", null, 1);
db = getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists user(" +
"number int primary key," +
"name varchar(32)," +
"English_name varchar(32)," +
"gender int," +
"age int)"
);
db.execSQL("insert into user values(001, '张三', 'zhangsan', 1, 23)");
db.execSQL("insert into user values(002, '翠花', 'cuihua', 2, 18)");
db.execSQL("insert into user values(003, '李四', 'lisi', 1, 21)");
db.execSQL("insert into user values(004, '熊大', 'xiongda', 1, 56)");
db.execSQL("insert into user values(005, '王五', 'wangwu', 1, 20)");
db.execSQL("insert into user values(006, '赵六', 'zhaoliu', 1, 19)");
db.execSQL("insert into user values(007, '姬七', 'jiqi', 1, 18)");
db.execSQL("insert into user values(008, '熊二', 'xionger', 1, 50)");
db.execSQL("insert into user values(009, '达瓦', 'dawa', 1, 87)");
db.execSQL("insert into user values(010, '如花', 'ruhua', 2, 25)");
db.execSQL("insert into user values(011, '光头强', 'guangtouqiang', 1, 34)");
db.execSQL("insert into user values(012, '张飞', 'zhangfei', 1, 45)");
db.execSQL("insert into user values(013, '曹操', 'caocao', 1, 50)");
db.execSQL("insert into user values(014, '刘备', 'liubei', 1, 48)");
db.execSQL("insert into user values(015, '李白', 'libai', 1, 56)");
db.execSQL("insert into user values(016, '韩信', 'hanxin', 1, 47)");
db.execSQL("insert into user values(017, '莫邪', 'moye', 2, 23)");
db.execSQL("insert into user values(018, '妲己', 'daji', 2, 999)");
db.execSQL("insert into user values(019, '猪八戒', 'zhubajie', 1, 999)");
db.execSQL("insert into user values(020, '夏侯惇', 'xiahoudun', 1, 55)");
db.execSQL("insert into user values(021, '刘禅', 'liushan', 1, 16)");
db.execSQL("insert into user values(022, '貂蝉', 'diaochan', 2, 14)");
db.execSQL("insert into user values(023, '西施', 'xishi', 2, 15)");
db.execSQL("insert into user values(024, '杨玉环', 'yangyuhuan', 2, 18)");
db.execSQL("insert into user values(025, '王昭君', 'wangzhaojun', 2, 19)");
db.execSQL("insert into user values(026, '小乔', 'xiaoqiao', 2, 14)");
db.execSQL("insert into user values(027, '大乔', 'daqiao', 2, 18)");
db.execSQL("insert into user values(028, '甄姬', 'zhenji', 2, 24)");
db.execSQL("insert into user values(029, '孙尚香', 'sunshangxiang', 2, 39)");
db.execSQL("insert into user values(030, '女娲', 'nvwa', 2, 999)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
二:主界面布局文件activity_10.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Activity10"
android:padding="20dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="搜索、模糊查询"
android:textSize="23sp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="#C7EDE4"
android:onClick="ToSearch"
android:text="高级搜索" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="50dp"
android:layout_marginBottom="70dp"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:hint="请输入英文名"
android:inputType="text"
android:paddingLeft="15dp"
android:paddingRight="15dp" />
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:src="@mipmap/search"
android:onClick="Search"/>
</RelativeLayout>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="返回"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
主界面Activity10
package com.example.test;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import com.example.test.tools.ShowAdapter;
import com.example.test.utils.Database;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Activity10 extends AppCompatActivity {
public static final int REQUEST_CODE = 1;
private EditText edit;
private ListView listView;
private String text;
private String sql = "select * from user";
private String sql_search = "";
// 是否第一次进入界面
private boolean isOne = true;
// 是否高级搜索
private boolean search = false;
private ArrayList numbers = new ArrayList();
private ArrayList names = new ArrayList();
private ArrayList English_names = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_10);
initView();
}
private void initView() {
Button btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
edit = findViewById(R.id.edit);
listView = findViewById(R.id.listView);
}
@Override
protected void onStart() {
super.onStart();
if (search) {
Show(sql_search, isOne);
search = false;
} else {
Show(sql, isOne);
}
}
@Override
protected void onStop() {
super.onStop();
edit.setText("");
}
/**
* 展示listView信息到指定位置
* @param sql
*/
private void Show(String sql, boolean b) {
Database database = new Database(Activity10.this);
SQLiteDatabase db = database.getReadableDatabase();
List<Map<String, String>> list = new ArrayList<>();
Cursor cursor = db.rawQuery(sql, null);
while (cursor.moveToNext()) {
Map<String, String> map = new HashMap<>();
@SuppressLint("Range") String number = cursor.getString(cursor.getColumnIndex("number"));
@SuppressLint("Range") String name = cursor.getString(cursor.getColumnIndex("name"));
@SuppressLint("Range") String English_name = cursor.getString(cursor.getColumnIndex("English_name"));
@SuppressLint("Range") String gender = cursor.getString(cursor.getColumnIndex("gender"));
@SuppressLint("Range") String age = cursor.getString(cursor.getColumnIndex("age"));
map.put("number", number);
map.put("name", name);
map.put("English_name", English_name);
map.put("gender", gender);
map.put("age", age);
list.add(map);
}
cursor.close();
ShowAdapter adapter = new ShowAdapter(Activity10.this, list);
listView.setAdapter(adapter);
if (b) {
for (int i = 0; i < list.size(); i++) {
numbers.add(list.get(i).get("number"));
names.add(list.get(i).get("name"));
if (i == 0) {
English_names.add("");
English_names.add(list.get(i).get("English_name"));
} else {
English_names.add(list.get(i).get("English_name"));
}
}
isOne = false;
}
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(Activity10.this, list.get(position).get("name"), Toast.LENGTH_LONG).show();
}
});
}
/**
* 跳转高级搜索界面
* @param view
*/
public void ToSearch(View view) {
Intent intent = new Intent(Activity10.this, Search.class);
intent.putStringArrayListExtra("numbers", numbers);
intent.putStringArrayListExtra("names", names);
intent.putStringArrayListExtra("English_names", English_names);
startActivityForResult(intent, REQUEST_CODE);
}
/**
* 搜索按钮点击事件
* @param view
*/
public void Search(View view) {
// 点击搜索按钮后关闭软键盘
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(edit.getWindowToken(), 0);
text = edit.getText().toString().trim();
if (!TextUtils.isEmpty(text)) {
String sql = "select * from user where English_name like '%" + text + "%'";
Show(sql, isOne);
} else {
Show(sql, isOne);
Toast.makeText(Activity10.this, "请输入搜索内容", Toast.LENGTH_LONG).show();
edit.setText("");
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Search.RESULT_CODE) {
String number = data.getStringExtra("number");
String name = data.getStringExtra("name");
String English_name = data.getStringExtra("English_name");
int gender = data.getIntExtra("gender", 0);
String age = data.getStringExtra("age");
StringBuilder sql = new StringBuilder("select * from user");
if (!TextUtils.isEmpty(number)) {
sql.append(" where number = '" + number + "'");
if (!TextUtils.isEmpty(name)) {
sql.append(" and name = '" + name + "'");
}
if (!TextUtils.isEmpty(English_name)) {
sql.append(" and English_name = '" + English_name + "'");
}
if (gender != 0) {
sql.append(" and gender = '" + gender + "'");
}
if (!TextUtils.isEmpty(age)) {
sql.append(" and age = '" + age + "'");
}
} else {
if (!TextUtils.isEmpty(name)) {
sql.append(" where name = '" + name + "'");
if (!TextUtils.isEmpty(English_name)) {
sql.append(" and English_name = '" + English_name + "'");
}
if (gender != 0) {
sql.append(" and gender = '" + gender + "'");
}
if (!TextUtils.isEmpty(age)) {
sql.append(" and age = '" + age + "'");
}
} else {
if (!TextUtils.isEmpty(English_name)) {
sql.append(" where English_name = '" + English_name + "'");
if (gender != 0) {
sql.append(" and gender = '" + gender + "'");
}
if (!TextUtils.isEmpty(age)) {
sql.append(" and age = '" + age + "'");
}
} else {
if (gender != 0) {
sql.append(" where gender = '" + gender + "'");
if (!TextUtils.isEmpty(age)) {
sql.append(" and age = '" + age + "'");
}
} else {
if (!TextUtils.isEmpty(age)) {
sql.append(" where age = '" + age + "'");
}
}
}
}
}
sql_search = sql.toString();
search = true;
}
}
}
三:自定义展示listView适配器ShowAdapter
package com.example.test.tools;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;
import com.example.test.R;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class ShowAdapter extends BaseAdapter{
private Context context;
private List<Map<String, String>> list;
private LayoutInflater inflater;
public ShowAdapter(Context context, List<Map<String, String>> list) {
this.context = context;
this.list = list;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Holder holder = null;
if (convertView == null) {
holder = new Holder();
convertView = inflater.inflate(R.layout.show, null);
holder.number = convertView.findViewById(R.id.number);
holder.name = convertView.findViewById(R.id.name);
holder.English_name = convertView.findViewById(R.id.English_name);
holder.age = convertView.findViewById(R.id.age);
holder.gender = convertView.findViewById(R.id.gender);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
holder.number.setText(list.get(position).get("number"));
holder.name.setText(list.get(position).get("name"));
holder.English_name.setText(list.get(position).get("English_name"));
holder.age.setText(list.get(position).get("age"));
if (list.get(position).get("gender").equals("1")) {
holder.gender.setText("男");
} else if (list.get(position).get("gender").equals("2")) {
holder.gender.setText("女");
}
return convertView;
}
class Holder {
TextView name;
TextView English_name;
TextView number;
TextView age;
TextView gender;
}
}
自定义展示listView适配器的布局文件show.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border"
android:orientation="vertical"
android:padding="15dp"
android:gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="编号:"
android:textSize="17sp"
android:textColor="#333"/>
<TextView
android:id="@+id/number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17sp"
android:textColor="#333"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名:"
android:textSize="17sp"
android:textColor="#333"/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17sp"
android:textColor="#333"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="英文名:"
android:textSize="17sp"
android:textColor="#333"/>
<TextView
android:id="@+id/English_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17sp"
android:textColor="#333"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别:"
android:textSize="17sp"
android:textColor="#333"/>
<TextView
android:id="@+id/gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17sp"
android:textColor="#333"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="年龄:"
android:textSize="17sp"
android:textColor="#333"/>
<TextView
android:id="@+id/age"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17sp"
android:textColor="#333"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
四:高级搜索(多条件精准查询)布局文件activity_search.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Search"
android:orientation="vertical"
android:gravity="center"
android:padding="20dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="高级搜索"
android:textSize="25sp"
android:textColor="#333"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="#C7EDE4"
android:onClick="Search"
android:padding="5dp"
android:text="搜索" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="编号"
android:textSize="20sp"
android:textColor="#333"/>
<EditText
android:id="@+id/number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:textColor="#333"
android:focusable="false"
android:background="@drawable/border"
android:padding="8dp"
android:layout_marginLeft="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名"
android:textSize="20sp"
android:textColor="#333"/>
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="20sp"
android:textColor="#333"
android:focusable="false"
android:background="@drawable/border"
android:padding="8dp"
android:layout_marginLeft="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="英文名"
android:textSize="20sp"
android:textColor="#333"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border"
android:padding="8dp"
android:layout_marginLeft="5dp">
<Spinner
android:id="@+id/English_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#333"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别"
android:textSize="20sp"
android:textColor="#333"/>
<RadioGroup
android:id="@+id/gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
android:textSize="20sp"
android:textColor="#333"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/woman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
android:textSize="20sp"
android:textColor="#333"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:focusable="true"
android:focusableInTouchMode="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="年龄"
android:textSize="20sp"
android:textColor="#333"/>
<EditText
android:id="@+id/age"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:gravity="center"
android:textSize="20sp"
android:textColor="#333"
android:padding="8dp"
android:layout_marginLeft="5dp"/>
</LinearLayout>
</LinearLayout>
高级搜索(多条件精准查询)界面Search
package com.example.test;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListPopupWindow;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.Toast;
import com.example.test.tools.NameAdapter;
import java.util.ArrayList;
public class Search extends AppCompatActivity {
public static final int RESULT_CODE = 2;
private EditText number;
private EditText name;
private EditText age;
private Spinner English_name;
private RadioGroup group;
private ArrayList numbers = new ArrayList();
private ArrayList names = new ArrayList();
private ArrayList English_names = new ArrayList();
private int gender = 0;
private String english_name = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_search);
initView();
onClick();
}
private void initView() {
number = findViewById(R.id.number);
name = findViewById(R.id.name);
age = findViewById(R.id.age);
group = findViewById(R.id.gender);
English_name = findViewById(R.id.English_name);
numbers = getIntent().getStringArrayListExtra("numbers");
names = getIntent().getStringArrayListExtra("names");
English_names = getIntent().getStringArrayListExtra("English_names");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Search.this, android.R.layout.simple_list_item_1, English_names);
English_name.setAdapter(adapter);
}
private void onClick() {
// 自定义ListPopupWindow + EditText实现下拉框
number.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ListPopupWindow window = new ListPopupWindow(Search.this);
window.setAdapter(new ArrayAdapter<String>(Search.this, android.R.layout.simple_list_item_1, numbers));
window.setAnchorView(number);
window.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT);
window.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
window.setModal(true);
window.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
number.setText(numbers.get(position).toString());
if (window != null) {
window.dismiss();
}
}
});
window.show();
}
});
// 自定义弹出对话框
name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater inflater = (LayoutInflater) Search.this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.name, null);
ListView listView = layout.findViewById(R.id.name);
NameAdapter adapter = new NameAdapter(Search.this, names);
listView.setAdapter(adapter);
AlertDialog.Builder builder = new AlertDialog.Builder(Search.this);
builder.setView(layout);
AlertDialog dialog = builder.create();
dialog.show();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
name.setText(names.get(position).toString());
if (dialog != null) {
dialog.dismiss();
}
}
});
}
});
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton button = findViewById(checkedId);
String select = button.getText().toString();
if (select.equals("男")) {
gender = 1;
} else {
gender = 2;
}
}
});
English_name.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
english_name = English_names.get(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
/**
* 搜索按钮,将填写的信息传递到展示界面,并根据填写的条件进行精准搜索
* @param view
*/
public void Search(View view) {
String numbered = number.getText().toString().trim();
String named = name.getText().toString().trim();
String aged = age.getText().toString().trim();
Intent intent = new Intent();
intent.putExtra("number", numbered);
intent.putExtra("name", named);
intent.putExtra("English_name", english_name);
intent.putExtra("gender", gender);
intent.putExtra("age", aged);
setResult(RESULT_CODE, intent);
finish();
}
}
五:自定义对话框布局文件name.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名:"
android:textSize="20sp"
android:textColor="#333"
android:textStyle="bold"/>
<ListView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
六:效果图