EditText + ListView 之间的搜索配置 动态加载ListView数据

来源:互联网 发布:50兆宽带能看网络电视 编辑:程序博客网 时间:2024/05/01 03:52

我没有用到SQLite 的东西  一来 这个有点复杂 二来 我不会   我的思路是setAdapter 




package com.xiaoxiong.washing;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.text.Editable;import android.text.TextWatcher;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.EditText;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class Area_acticity extends Activity {ListView myList;AreaAdapter myadapter;EditText myEditText;ImageView imageview;    public static final String[] sStrings ={ "长安区",    "碑林区","莲湖区","灞桥区","雁塔区",};//"阎良区","未央区","新城区","临潼区"    //};public List<String> list = new ArrayList<String>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.setContentView(R.layout.addres_qu);myList = (ListView)findViewById(R.id.area_listview);myadapter = new AreaAdapter(GetData(),this);myList.setAdapter(myadapter);setEditText();myList.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {TextView v = (TextView)arg1.findViewById(R.id.area_name);String text = v.getText().toString();Bundle bun = new Bundle();bun.putString("area", text);Intent data = new Intent();    data.putExtras(bun);Area_acticity.this.setResult(10, data);finish();}});imageview = (ImageView)this.findViewById(R.id.back);imageview.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubTextView v = (TextView)findViewById(R.id.area_name);String text = v.getText().toString();Bundle bun = new Bundle();bun.putString("area", text);Intent data = new Intent();    data.putExtras(bun);Area_acticity.this.setResult(5, data);    Area_acticity.this.finish();}});}public List<String> GetData(){list = new ArrayList<>();for (int i = 0; i < sStrings.length; i++) {    list.add(sStrings[i]);}return list;}private void setEditText(){myEditText = (EditText)findViewById(R.id.search_edit);myEditText.addTextChangedListener(new TextWatcher() {@Overridepublic void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {if (myEditText.getText().toString() != null) {String state = myEditText.getText().toString();search(state);}}@Overridepublic void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {}@Overridepublic void afterTextChanged(Editable s) {}});}public void search(String string) {list.clear();for (int i = 0; i < sStrings.length; i++) {if (sStrings[i].contains(string)) {list.add(sStrings[i]);}}myList.setAdapter(new AreaAdapter(list, this));}}


package com.xiaoxiong.washing;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class AreaAdapter extends BaseAdapter {  private LayoutInflater mInflater;    ArrayList<String> Data = null;    Context context;public AreaAdapter(List<String>list,Context context) {super();mInflater = LayoutInflater.from(context);this.Data = (ArrayList<String>) list;}@Overridepublic int getCount() {return Data == null ? 0 : Data.size();}@Overridepublic Object getItem(int arg0) {return Data.get(arg0);}@Overridepublic long getItemId(int arg0) {return arg0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder _vh= new ViewHolder();if(convertView == null){convertView = mInflater.inflate(R.layout.addres_qu_item, null);    _vh.name = (TextView)convertView.findViewById(R.id.area_name);    convertView.setTag(_vh);}else{_vh = (ViewHolder)convertView.getTag();}_vh.name.setText(Data.get(position).toString());return convertView;}    private static class ViewHolder    {      TextView name;      TextView description;      TextView createTime; }}

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/bg_grey"    android:orientation="vertical" >    <RelativeLayout        android:layout_width="match_parent"        android:background="@color/bg_white"        android:layout_height="50dp">    <ImageView        android:id="@+id/back"         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_centerVertical="true"        android:clickable="true"        android:src="@drawable/bg_back"        android:layout_marginLeft="5dp"        />    <TextView        android:id="@+id/usermassge_text"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_centerVertical="true"        android:gravity="center"        android:textColor="#000000"        android:text="小区地址"        android:textSize="20sp" />    </RelativeLayout>    <LinearLayout        android:layout_marginTop="20dp"        android:layout_width="match_parent"        android:layout_height="40dp"        android:background="@drawable/edit_stork"         android:layout_marginLeft="20dp"        android:layout_marginRight="20dp"        >        <ImageView            android:layout_margin="10dp"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:src="@drawable/area_search" />        <EditText            android:id="@+id/search_edit"            android:layout_height="40dp"            android:layout_width="200dp"             android:hint="searching....."            android:background="@android:color/transparent"            />    </LinearLayout>    <ListView        android:layout_marginTop="10dp"        android:background="@color/bg_white"        android:id="@+id/area_listview"        android:divider="@color/bg_grey"        android:layout_width="match_parent"        android:layout_height="wrap_content" >         </ListView></LinearLayout>



0 0
原创粉丝点击