当前位置: 首页 > news >正文

Android 搜索框自动提示及其保存历史记录

为什么80%的码农都做不了架构师?>>>   hot3.png



package com.sun.com;


import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.Toast;


public class Count extends Activity {
    private ArrayAdapter<String> adapter_history;
     private AutoCompleteTextView auto;
    private Button ok;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.count);
        auto = (AutoCompleteTextView) findViewById(R.id.auto);
        auto.setThreshold(1);
        ok = (Button) findViewById(R.id.save);
        SharedPreferences sp = getSharedPreferences("history_strs", 0);
        String save_history = sp.getString("history", "");
        String[] hisArrays = save_history.split(",");
        adapter_history = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, hisArrays);
        if (hisArrays.length > 5) {
            String[] newArrays = new String[50];
            System.arraycopy(hisArrays, 0, newArrays, 0, 50);
            adapter_history = new ArrayAdapter<String>(this,
                    android.R.layout.simple_dropdown_item_1line, newArrays);
        }
        auto.setAdapter(adapter_history);
        ok.setOnClickListener(new Button.OnClickListener() {


            public void onClick(View v) {
                // TODO Auto-generated method stub
                Save();
            }
        });


    }


    private void Save() {


        String text = auto.getText().toString();
        SharedPreferences sp = getSharedPreferences("history_strs", 0);
        String save_Str = sp.getString("history", "");
        String[] hisArrays = save_Str.split(",");
        for(int i=0;i<hisArrays.length;i++)
        {
            if(hisArrays[i].equals(text))
            {
                return;
            }
        }
        StringBuilder sb = new StringBuilder(save_Str);
        sb.append(text + ",");
        sp.edit().putString("history", sb.toString()).commit();
        Toast.makeText(Count.this, sb.toString(), Toast.LENGTH_LONG).show();
    }


}



布局文件



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <AutoCompleteTextView
        android:id="@+id/auto"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />


    <Button
        android:id="@+id/save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:text="OK">
    </Button>


</LinearLayout>



转载于:https://my.oschina.net/luqin/blog/100037

相关文章:

  • 无法运行宏,可能是因为该宏在此工作簿中不可用,或者所有的宏都被禁用的解决方法...
  • 通过“时间管理",加快学习进度
  • 美女电子相册
  • CMAKE2.8.10在HP-UNIX上安装异常解决
  • Reflow
  • emacs-shell
  • WPF 去除头部,实现拖动
  • shell四大变量和实例_李强强
  • 通过SharpShell快速实现Windows Shell扩展
  • 简明 Vim 练级攻略 | 酷壳 - CoolShell.cn
  • 简单.net 数组
  • C# List数据类型的简单使用
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • CentOS VNC安装
  • 一个(次)线程的生命史
  • 77. Combinations
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • gcc介绍及安装
  • JS函数式编程 数组部分风格 ES6版
  • Mac转Windows的拯救指南
  • October CMS - 快速入门 9 Images And Galleries
  • Odoo domain写法及运用
  • php的插入排序,通过双层for循环
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Spring Cloud Feign的两种使用姿势
  • SQL 难点解决:记录的引用
  • storm drpc实例
  • vue-loader 源码解析系列之 selector
  • windows下如何用phpstorm同步测试服务器
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 第2章 网络文档
  • 读懂package.json -- 依赖管理
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 一份游戏开发学习路线
  • No resource identifier found for attribute,RxJava之zip操作符
  • 7行Python代码的人脸识别
  • 阿里云服务器购买完整流程
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • #{} 和 ${}区别
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (02)Hive SQL编译成MapReduce任务的过程
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (二)丶RabbitMQ的六大核心
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (十六)串口UART
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)一些感悟
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl