想要加一个searchView搜索框,在搜索框中输入数据会实时更新listview,试了好多次还是没反应。。。代码如下:
package my.AddressList;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import my.AddressList.listViewAdapter.onItemChangesListener;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AliasActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Toast;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Center extends Activity{
private SearchView mSearchView;
private ListView mListView;
private Button btn1;
private List<Message> messages=new ArrayList();
private List<String> messagename=new ArrayList<String>();
listViewAdapter adapter1,adapter2;
SQLiteDatabase db;
DataBase dbHelper = new DataBase(this,"StoreMessage",null,2);
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.center);
Intent itlogin=super.getIntent();
Intent itcenter=super.getIntent();
Intent itbackadd=super.getIntent();
Intent itcenterM=super.getIntent();
Intent itmtcen=super.getIntent();
btn1=(Button)this.findViewById(R.id.add);
mSearchView=(SearchView)this.findViewById(R.id.searchView);
mListView=(ListView)this.findViewById(R.id.listview);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent itadd = new Intent(Center.this,addMessage.class);
startActivity(itadd);
}
});
db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("StoreMessage",null,null,null,null,null,null);
if (cursor.moveToFirst()){
do{
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
String relation = cursor.getString(cursor.getColumnIndex("relation"));
String fs = cursor.getString(cursor.getColumnIndex("fs"));
String address = cursor.getString(cursor.getColumnIndex("address"));
String remarks = cursor.getString(cursor.getColumnIndex("remarks"));
Message messagesInfo= new Message(name,phone,relation,fs,address,remarks);
messages.add(messagesInfo);//加入到list中
}while (cursor.moveToNext());
}
adapter1=new listViewAdapter(Center.this,R.layout.listview,messages);
mListView.setAdapter(adapter1);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Message message_check = messages.get(i);
String checkName =message_check.getName(),
checkPhone =message_check.getPhone(),
checkRelation =message_check.getRelation(),
checkfs =message_check.getfs(),
checkAddress = message_check.getAddress(),
checkRemarks= message_check.getRemarks();
AlertDialog.Builder builder = new AlertDialog.Builder(Center.this);
builder.setMessage(
" 姓 名:" + checkName + "\n" +
" 联 系 方 式 : " + checkPhone + "\n" +
" 关系 : " + checkRelation + "\n" +
" 公司 /学校 " + checkfs + "\n" +
" 地 址 :" + checkAddress + "\n" +
" 备 注 :" + checkRemarks + "\n");
builder.setTitle(" 查看联系人");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
builder.show();
}
});
mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
DeleteDialog(i);
return true;
}
});
//打电话
adapter1.setOnItemCallClickListener(new listViewAdapter.onItemCallListener() {
@Override
public void onCallClick(int i) {
Message message_check = messages.get(i);
String phoneNumber = message_check.getPhone();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phoneNumber));
startActivity(intent);
}
});
//编辑
adapter1.setOnItemChangesClickListener(new onItemChangesListener(){
@Override
public void onChangesClick(int i) {
Message message_check =messages.get(i);
String checkName =message_check.getName(),
checkPhone = message_check.getPhone(),
checkRelation = message_check.getRelation(),
checkfs= message_check.getfs(),
checkAddress = message_check.getAddress(),
checkRemarks= message_check.getRemarks();
Intent itmodify = new Intent(Center.this,Modify.class);
itmodify.putExtra("extra_name",checkName);
itmodify.putExtra("extra_phone",checkPhone);
itmodify.putExtra("extra_relation",checkRelation);
itmodify.putExtra("extra_fs",checkfs);
itmodify.putExtra("extra_address",checkAddress);
itmodify.putExtra("extra_remarks",checkRemarks);
itmodify.putExtra("extra_i",i);
startActivity(itmodify);
Toast.makeText(Center.this,"编辑",Toast.LENGTH_SHORT).show(); }
});
}
private void DeleteDialog(final int positon){
AlertDialog.Builder builder = new AlertDialog.Builder(Center.this);
builder.setMessage("删除联系人");
builder.setTitle("提示");
builder.setPositiveButton("删除", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Message message_check = messages.get(positon);
String checkName = message_check.getName(),
checkPhone = message_check.getPhone(),
checkRelation = message_check.getRelation(),
checkfs= message_check.getfs(),
checkAddress = message_check.getAddress(),
checkRemarks= message_check.getRemarks();
messages.remove(positon);
adapter1.notifyDataSetChanged(); //更新listView
db.delete("StoreMessage","name = ? and phone= ? and relation = ? and fs= ? and address = ? and remarks = ?",
new String[]{checkName,checkPhone,checkRelation,checkfs,checkAddress,checkRemarks});
Toast.makeText(Center.this,"删除成功!",Toast.LENGTH_SHORT).show();
}
});
builder.setNeutralButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
builder.show();
mListView.setTextFilterEnabled(true);
mSearchView.setSubmitButtonEnabled(true);//有搜索框
mSearchView.setQueryHint("搜索");
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){
@Override
public boolean onQueryTextChange(String newText) {
return false;
// TODO Auto-generated method stub
}
@Override
public boolean onQueryTextSubmit(String query) {
// TODO Auto-generated method stub
Toast.makeText(Center.this,"您的选择是:"+query,Toast.LENGTH_SHORT).show();
return false;
}
});
}
}