文档章节

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

紫地瓜
 紫地瓜
发布于 2013/01/05 11:04
字数 233
阅读 6005
收藏 4


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>



© 著作权归作者所有

紫地瓜
粉丝 28
博文 143
码字总数 212781
作品 0
日本
产品经理
私信 提问
Android开源实战:一个简单 & 好用的搜索框(含历史搜索记录)

前言 Android开发中,类似下图的搜索功能非常常见 搜索功能 今天,我将手把手教大家实现一款封装了 历史搜索记录功能 & 样式的Android自定义搜索框 开源库,希望你们会喜欢。 示意图 已在Git...

BillyLu1994
2018/04/28
0
0
Android系统操作的50个实用技巧

今天为大家整理的是Android系统操作的50个实用技巧,有利于大家更好的学习Sundy_android高级课程。请意这些技巧和秘籍大部分针对目前最主流的Android2.1 及以上系统,不过绝大部分在其他版本...

android技术开发
2013/07/25
375
1
Android源码分析(六)-----蓝牙Bluetooth源码目录分析

一 :Bluetooth 的设置应用 packagesappsSettingssrccomandroidsettingsbluetooth* 蓝牙设置应用及设置参数,蓝牙状态,蓝牙设备等。 BluetoothDevicePreference.java 顾名思义,蓝牙设备首选...

—莫言—
05/20
0
0
Android开发之EditText属性详解

1、EditText输入的文字为密码形式的设置 (1)通过.xml里设置: 把该EditText设为:android:password="true" // 以”.”形式显示文本 (2)在代码里设置: 通过设置EditText的setTransformation...

的书法上的
2014/07/28
256
0
android应用把文件存放在SDCard

1、在程序中访问SDCard,你需要申请访问SDCard的权限 在AndroidManifest.xml中加入访问SDCard的权限如下: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schem......

罗荣熙
2012/11/08
228
0

没有更多内容

加载失败,请刷新页面

加载更多

Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
39分钟前
3
0
CSS--属性

一、溢出 当内容多,元素区域小的时候,就会产生溢出效果,默认是纵向溢出 横向溢出:在内容和容器之间再套一层容器,并且内部容器要比外部容器宽 属性:overflow/overflow-x/overflow-y 取值...

wytao1995
58分钟前
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
6
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0
jenkins 插件下载加速最终方案

推荐做法 1、告诉jenkins 我哪些插件需要更新 jenkins插件清华大学镜像地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 1.进入jenkins系统管理 2.进入插件管...

vasks
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部