安卓UI:SearchView

目录

一、SearchView介绍

二、常用方法

(一)、监听器:

 (二)、常用方法:

(三)、其他常用方法

三、例子:

MainActivity2 :

ChatListAdapter :

 item_people_view:

 activity_main2:

运行结果:

一、SearchView介绍

        SearchView 是 Android 平台上常用的搜索框控件,它提供了一个可定制的用户界面,允许用户输入搜索查询并触发相关操作。SearchView 可以方便地集成到应用程序中,提供了各种功能和样式选项,使用户能够快速、准确地进行搜索。

SearchView属性

属性名称     相关方法   功能
android:iconifiedByDefault    setIconifiedByDefault(boolean) 设置搜索图标是否显示在搜索框内
android:imeOptions   setImeOptions(int)   设置输入法搜索选项字段,默认是搜索,可以是:下一页、发送、完成等
android:inputType    setInputType(int)  设置输入类型
 android:maxWidth  setMaxWidth(int)  设置最大宽度
android:queryHint setQueryHint(CharSequence)    设置查询提示字符串

二、常用方法

(一)、监听器:

  • setOnQueryTextListener(OnQueryTextListener listener): 设置文本查询监听器。可以通过该监听器获取搜索关键字的输入、提交和清除操作等
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        // 当用户提交搜索关键字时触发
        // 在这里处理搜索逻辑
        return true;
    }
    
    @Override
    public boolean onQueryTextChange(String newText) {
        // 当搜索关键字发生变化时触发
        // 在这里实现实时搜索功能
        return true;
    }
});
  • setOnSearchClickListener(View.OnClickListener listener): 设置搜索图标点击监听器。可以在搜索图标被点击时执行一些操作。
searchView.setOnSearchClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 当搜索图标被点击时触发
        // 在这里执行操作,例如展示搜索历史记录等
    }
});

 (二)、常用方法:

  • setQueryHint(CharSequence hint): 设置搜索框的提示文本,以指导用户输入搜索关键字。
searchView.setQueryHint("请输入搜索关键字");
  • getQuery(): 获取当前搜索框中的关键字。
String query = searchView.getQuery().toString();
  • setQuery(CharSequence query, boolean submit): 设置搜索框中的关键字。
searchView.setQuery("关键字", false);
  • setIconified(boolean iconify): 控制搜索框的展开和收起状态。true 表示收起搜索框,只显示搜索图标;false 表示展开搜索框。
searchView.setIconified(false); // 展开搜索框

(三)、其他常用方法

  • clearFocus(): 清除搜索框的焦点。
  • isIconified(): 判断搜索框是否处于收起状态。
  • setSubmitButtonEnabled(boolean enabled): 设置是否显示提交按钮,用于一键提交搜索关键字。
  • setSuggestionsAdapter(CursorAdapter adapter): 设置搜索建议的适配器。可以自定义搜索建议的展示样式和数据源。

三、例子:

MainActivity2 :

package com.example.qq.Activity;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;

import android.os.Bundle;

import com.example.qq.Fragment.ChatFragment;
import com.example.qq.R;

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        ChatFragment chatFragment = new ChatFragment();
        addFragment(chatFragment);
    }
    // 静态添加 Fragment
    private void addFragment(Fragment fragment) {
        getSupportFragmentManager()
                .beginTransaction()
                .add(R.id.ff, fragment)
                .commit();
    }
}

ChatListAdapter :

package com.example.qq.Adapter;

import android.content.Intent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;


import com.example.qq.Adapter.DataBean.Person;
import com.example.qq.R;
import com.example.qq.Activity.CommunicateActivity;

import java.util.List;

public class ChatListAdapter extends RecyclerView.Adapter {
    private List mList;

    public ChatListAdapter(Listdata){
        this.mList = data;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = View.inflate(parent.getContext(), R.layout.item_people_view,null);
        ViewHolder holder = new ViewHolder(view);
        holder.name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(parent.getContext(), CommunicateActivity.class);
                parent.getContext().startActivity(intent);
            }
        });
        return holder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
     Person people = mList.get(position);
     holder.name.setText(people.name);
     holder.photo.setImageResource(people.pic);
    }

    @Override
    public int getItemCount() {
        return mList.size();
    }

    public void setPersonList(List filteredList) {
        this.mList = filteredList;
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        private final ImageView photo;
        private final TextView name;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            photo = itemView.findViewById(R.id.photo);
            name = itemView.findViewById(R.id.name);
        }
    }
}

 item_people_view:





    


    




 activity_main2:




运行结果:

安卓UI:SearchView_第1张图片

你可能感兴趣的:(UI,android,ui)