当前位置: 首页 > 编程笔记 >

Android流式布局实现历史搜索记录功能

仲孙华奥
2023-03-14
本文向大家介绍Android流式布局实现历史搜索记录功能,包括了Android流式布局实现历史搜索记录功能的使用技巧和注意事项,需要的朋友参考一下

最近在开发项目的时候,有一个需求是展示历史搜索记录 ,展示的样式是流式布局(就是根据内容自动换行)。在网上看到了一个不错的类库跟大家分享一下

首先在AndroidStudio简历一个工程项目导入module类库,我会把项目demo方法GitHub上

说一下demo中的实现方式

在 activity_main.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:id="@+id/activity_main"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
  <EditText
    android:id="@+id/edt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
  <Button
    android:id="@+id/btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="确定" />
  <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.zhy.view.flowlayout.TagFlowLayout
      android:id="@+id/id_flowlayout"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      app:max_select="-1" />
  </ScrollView>
</LinearLayout>

实现模拟搜索效果图

MainActivity.Java 代码

public class MainActivity extends AppCompatActivity {
  private TagFlowLayout mFlowLayout;
  private EditText editText;
  private Button button;
  private List<String> strings;
  //布局管理器
  private LayoutInflater mInflater;
  //流式布局的子布局
  private TextView tv;
  public Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
      switch (msg.what) {
        case 1:
          mFlowLayout.setAdapter(new TagAdapter<String>(strings) {
            @Override
            public View getView(FlowLayout parent, int position, String s) {
              tv = (TextView) mInflater.inflate(R.layout.tv,
                  mFlowLayout, false);
              tv.setText(s);
              return tv;
            }
          });
          break;
      }
      super.handleMessage(msg);
    }
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mInflater = LayoutInflater.from(this);
    mFlowLayout = (TagFlowLayout) findViewById(R.id.id_flowlayout);
    editText = (EditText) findViewById(R.id.edt);
    button = (Button) findViewById(R.id.btn);
    strings = new ArrayList<>();
    button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        String aa = editText.getText().toString().trim();
        strings.add(aa);
        //通知handler更新UI
        handler.sendEmptyMessageDelayed(1, 0);
      }
    });
    //流式布局tag的点击方法
    mFlowLayout.setOnTagClickListener(new TagFlowLayout.OnTagClickListener() {
      @Override
      public boolean onTagClick(View view, int position, FlowLayout parent) {
        Toast.makeText(MainActivity.this, tv.getText(), Toast.LENGTH_SHORT).show();
        return true;
      }
    });
  }

当我们点击确定按钮的时候,通知handler 去更新UI界面

效果图如下:

这样就实现了一个简单的流式布局历史搜索记录

GitHub地址:https://github.com/zhangliyong114/FlowLayoutDemo

以上所述是小编给大家介绍的Android流式布局实现历史搜索记录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍Android本地实现搜索历史记录,包括了Android本地实现搜索历史记录的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android本地实现搜索历史记录的具体代码,供大家参考,具体内容如下 一.自定义搜索历史记录 本地实现搜索历史记录有很多种方法,下面不多说了,我们来用SQLite来实现此功能,直接上完整代码:点击下载源码 效果一: 效果二: 1.MainActi

  • 本文向大家介绍Android实现搜索历史功能,包括了Android实现搜索历史功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现搜索历史的具体代码,供大家参考,具体内容如下 SharedPreferences实现本地搜索历史功能,覆盖搜索重复的文本,可清空  1. 判断搜索内容是否含表情,不需要可以不判断 2.软键盘工具类弹出、关闭,不需要可以不判断 3.存储工具

  • 本文向大家介绍使用JS location实现搜索框历史记录功能,包括了使用JS location实现搜索框历史记录功能的使用技巧和注意事项,需要的朋友参考一下 首先,来看下效果图(样式什么的就不必吐槽了哈) html代码 css代码 js代码(这里需引入jQuery) 总结 以上所述是小编给大家介绍的使用JS location实现搜索框历史记录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言

  • 问题内容: 我想检索几年前/几个月前在Google网络历史记录中出现的旧Google搜索。我如何以编程方式检索它们? https://www.google.com/history/?output=rss仅提供最近的Google搜索,但不是全部。 还有一个问题:如何检索我的Google搜索记录?没有为我的问题提供任何答案! 问题答案: 您可以传递月,日和年作为参数来获取特定日期的历史记录。 例如,2

  • 读取播放历史信息 调用地址 http://api.bilibili.cn/history 返回 返回值字段 字段类型 字段说明 results int 返回的记录总数目 list object 返回数据 返回字段 “list” 子项 返回值字段 字段类型 字段说明 aid int 视频编号 typeid int 视频分类ID typename string 视频分类名称 title string

  • 历史记录 控制台维护 Elasticsearch 成功执行的最后500个请求列表。点击窗口右上角的时钟图标即可查看历史记录。这个图标会打开历史记录面板,您可以在其中查看历史请求。您也可以在这里选择一个请求,它将被添加到编辑器中当前光标所在的位置。 图 9. 历史记录面板