首页 > 系统 > Android > 正文

Android实现简单实用的搜索框

2020-02-21 17:21:40
字体:
来源:转载
供稿:网友

Android开发中,很多实现效果还是动态最能受到大家的欢迎,而搜索框也是很常见的,但在Android开发中没有现成的控件,下面武林技术频道小编给大家介绍Android实现简单实用的搜索框。

展示效果

这里写图片描述

代码区

SouActivity

public class SouActivity extends AppCompatActivity implements TextWatcher{  @BindView(R.id.app_sou)  EditText appSou;  @BindView(R.id.app_sou_list)  ListView appSouList;  @BindView(R.id.activity_sou)  RelativeLayout activitySou;  private String mUrl = "http://120.27.23.105/product/searchProducts";  private List<MySouFr.DataBean> sdata;  private MyBase myBase;  private String asou;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_sou);    ButterKnife.bind(this);    sdata=new ArrayList<MySouFr.DataBean>();    appSou.addTextChangedListener(this);    appSou.setOnFocusChangeListener(new View.OnFocusChangeListener() {      @Override      public void onFocusChange(View view, boolean b) {        if(b)        {          appSou.setText("");        }      }    });  }  @Override  public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {  }  @Override  public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {    //获取输入框的值    asou = appSou.getText().toString().trim();      OkHttp3Utils.getInstance().doGet(mUrl + "?keywords=" + asou + "&page=1", new GsonObjectCallback<MySouFr>() {        @Override        public void onUi(final MySouFr mySouFr) {          /*适配器*/          if (asou !=null&&!asou.equals("")) {            sdata = mySouFr.getData();            myBase = new MyBase();            appSouList.setAdapter(myBase);            appSouList.setOnItemClickListener(new AdapterView.OnItemClickListener() {              @Override              public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                Intent intent = new Intent(SouActivity.this, Sou_item_Activity.class);                intent.putExtra("url",mySouFr.getData().get(i).getDetailUrl());                startActivity(intent);//                Toast.makeText(SouActivity.this, "假装你已经点击了哦!", Toast.LENGTH_SHORT).show();              }            });          } else if(myBase!=null) {            sdata.clear();            myBase.notifyDataSetChanged();          }        }        @Override        public void onFailed(Call call, IOException e) {        }      });    }  @Override  public void afterTextChanged(Editable editable) {  }  class MyBase extends BaseAdapter{    @Override    public int getCount() {      return sdata.size();    }    @Override    public Object getItem(int i) {      return sdata.get(i);    }    @Override    public long getItemId(int i) {      return i;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {      Vh vh=null;      if(view==null){        view=View.inflate(SouActivity.this,R.layout.item_sou,null);        vh=new Vh();        vh.tv1=(TextView) view.findViewById(R.id.item_sou_text1);        view.setTag(vh);      }else{        vh = (Vh) view.getTag();      }      Log.d("main",sdata.get(i).getTitle());      vh.tv1.setText(sdata.get(i).getTitle());      return view;    }  }  class Vh{    TextView tv1;  }}

activity_sou

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:id="@+id/activity_sou"  android:layout_width="match_parent"  android:layout_height="match_parent"  tools:context="sizu.nsg.SouActivity">  <EditText    android:id="@+id/app_sou"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:hint="Searching..."    />  <ListView    android:id="@+id/app_sou_list"    android:layout_below="@id/app_sou"    android:layout_width="match_parent"    android:layout_height="match_parent">  </ListView></RelativeLayout>


item_sou

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent">  <TextView    android:id="@+id/item_sou_text1"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:text="123"    /></RelativeLayout>

以上就是武林技术频道小编给大家介绍的Android实现简单实用的搜索框,相关内容就介绍到这里了,还想了解更多请继续关注js.Vevb.com吧!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表