- 浏览: 5778950 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
这个是网上找的.
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; import android.os.CountDownTimer; import android.text.Editable; import android.text.Html; import android.text.Spanned; import android.text.TextWatcher; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.SlidingDrawer; import android.widget.TextView; public class DemoHomeActivity extends Activity { private static final String TAG = "DemoHomeActivity"; private SlidingDrawer mDrawer; private TextView input_tv; private EndClosedMyDrawer mClosedDrawer; private ListView listview; private String [] test = new String[]{"010668971455","020132456","01058585896","02168000000","02168000001","1372160485","195369871"}; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); mClosedDrawer = new EndClosedMyDrawer(5000,1000); new UpdateListTask().execute(getTextNumber()); } protected void onRestart() { new UpdateListTask().execute(getTextNumber()); super.onRestart(); } public void init(){ mDrawer=(SlidingDrawer)findViewById(R.id.slidingdrawer); input_tv = (TextView)findViewById(R.id.input_dialpad_tv); listview = (ListView)findViewById(R.id.listview); input_tv.addTextChangedListener(watcher); } private TextWatcher watcher = new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void afterTextChanged(Editable s) { new UpdateListTask().execute(getTextNumber()); } }; private void keyPressed ( int keyCode ){ mDrawer.open(); try{ mClosedDrawer.cancel(); }catch (Exception e) { Log.i(TAG, "This is the first run updatelist Countdown!"); } mClosedDrawer.start(); } public boolean onKeyDown(int keyCode, KeyEvent event){ switch (keyCode){ case KeyEvent.KEYCODE_0 : keyPressed(KeyEvent.KEYCODE_0); input_tv.append("0"); break; case KeyEvent.KEYCODE_1 : keyPressed(KeyEvent.KEYCODE_1); input_tv.append("1"); break; case KeyEvent.KEYCODE_2 : keyPressed(KeyEvent.KEYCODE_2); input_tv.append("2"); break; case KeyEvent.KEYCODE_3 : keyPressed(KeyEvent.KEYCODE_3); input_tv.append("3"); break; case KeyEvent.KEYCODE_4 : keyPressed(KeyEvent.KEYCODE_4); input_tv.append("4"); break; case KeyEvent.KEYCODE_5 : keyPressed(KeyEvent.KEYCODE_5); input_tv.append("5"); break; case KeyEvent.KEYCODE_6 : keyPressed(KeyEvent.KEYCODE_6); input_tv.append("6"); break; case KeyEvent.KEYCODE_7 : keyPressed(KeyEvent.KEYCODE_7); input_tv.append("7"); break; case KeyEvent.KEYCODE_8 : keyPressed(KeyEvent.KEYCODE_8); input_tv.append("8"); break; case KeyEvent.KEYCODE_9 : keyPressed(KeyEvent.KEYCODE_9); input_tv.append("9"); break; case KeyEvent.KEYCODE_STAR : keyPressed(KeyEvent.KEYCODE_STAR); input_tv.append("*"); break; case KeyEvent.KEYCODE_POUND : keyPressed(KeyEvent.KEYCODE_POUND); input_tv.append("#"); break; case KeyEvent.KEYCODE_DEL: keyPressed(KeyEvent.KEYCODE_DEL); CharSequence str = ""; str = input_tv.getText(); if(str != null && str.length() > 0){ String temp = str.toString(); if(temp.length() == 1){ input_tv.setText(""); }else if(temp.length() > 1){ input_tv.setText(temp.subSequence(0, temp.length()-1)); } } break; default: return super.onKeyDown(keyCode, event); } return true; } /** * Customize Adapter, so that realize highlighted keywords */ private class HightKeywordsAdapter extends BaseAdapter{ private List list; private Context context; private String[] from; private int[] to; private int layoutid; private HashMap info; LayoutInflater myInflater; HashMap item; public HightKeywordsAdapter(Context context, List list, int layoutid, String[] from,int[] to){ this.context = context; this.list = list; this.from = from; this.to = to; this.layoutid = layoutid; } public int getCount() { // TODO Auto-generated method stub return list.size(); } public Object getItem(int position) { // TODO Auto-generated method stub return list.get(position); } public long getItemId(int position) { // TODO Auto-generated method stub return position; } public View getView(int position, View convertView, ViewGroup parent) { myInflater = LayoutInflater.from(context); try { item = (HashMap) list.get(position); convertView = myInflater.inflate(layoutid, null); convertView.setTag(item); }catch (Exception e) { Log.e(TAG, "Hight Key Error! "); } View number = convertView.findViewById(to[0]); if (number instanceof TextView) { TextView number_tv = (TextView) number; number_tv = (TextView) number; String number_temp = ""; number_temp = item.get(from[0]).toString(); String input = input_tv.getText().toString(); if(number_temp.contains(input)){ //Methods 1 int index = number_temp.indexOf(input); int len = input.length(); Spanned temp = Html.fromHtml(number_temp.substring(0, index) + "<u><font color=#5DB43B>" + number_temp.substring(index, index + len) + "</font></u>" + number_temp.substring(index + len, number_temp.length())); //Methods 2 /*int start = number.indexOf(input); SpannableStringBuilder style=new SpannableStringBuilder(number); style.setSpan(new Tex(Color.RED), start, start + input.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); */ number_tv.setText(temp); } } return convertView; } } private synchronized List updateNumberslist(String input) { List list = new ArrayList<HashMap<String, String>>(); if(input == null) { for(int i=0;i<test.length;i++){ HashMap<String, String> number_info = new HashMap<String, String>(); number_info.put("number", test[i]); list.add(number_info); } } else { for(int i=0;i<test.length;i++){ if(test[i].contains(input)){ HashMap<String, String> number_info = new HashMap<String, String>(); number_info.put("number", test[i]); list.add(number_info); } } } return list; } private String getTextNumber(){ if(input_tv.getText() != null && input_tv.getText().length() > 0){ return input_tv.getText().toString(); }else{ return null; } } private class UpdateListTask extends AsyncTask<String, Integer, BaseAdapter> { protected BaseAdapter doInBackground(String... params) { BaseAdapter listAdapter = new HightKeywordsAdapter(DemoHomeActivity.this, updateNumberslist(getTextNumber()), android.R.layout.simple_list_item_1, new String[] {"number" }, new int[] {android.R.id.text1 }); return listAdapter; } protected void onPostExecute(BaseAdapter result) { listview.setAdapter(result); } } //计数器 private class EndClosedMyDrawer extends CountDownTimer { public EndClosedMyDrawer(long millisInFuture, long countDownInterval){ super(millisInFuture, countDownInterval); } public void onFinish(){ //Log.i(TAG, "Start asyncTask to updateList !"); mDrawer.close(); } public void onTick(long millisUntilFinished){ } } }
发表评论
-
NestedScrollView滚动到顶部固定子View悬停挂靠粘在顶端
2018-10-31 20:45 6812网上有一个StickyScrollView,称之为粘性Scro ... -
自定义Behavior实现AppBarLayout越界弹性效果
2017-03-31 09:33 10236一、继承AppBarLayout.Beha ... -
Android - 一种相似图片搜索算法的实现
2017-03-31 09:33 2570算法 缩小尺寸。 将图片缩小到8x8的尺寸,总共64个 ... -
使用SpringAnimation实现带下拉弹簧动画的 ScrollView
2017-03-30 11:30 2796在刚推出的 Support Library 25.3.0 里面 ... -
Android为应用添加角标(Badge)
2017-03-30 11:21 61051.需求简介 角标是什么意思呢? 看下图即可明了: 可 ... -
Android端与笔记本利用局域网进行FTP通信
2017-03-23 10:17 930先看图 打开前: 打开后: Activity类 ... -
PorterDuffColorFilter 在项目中的基本使用
2017-03-03 10:58 1301有时候标题栏会浮在内容之上,而内容会有颜色的变化,这时候就要求 ... -
ColorAnimationView 实现了滑动Viewpager 时背景色动态变化的过渡效果
2017-02-24 09:41 2173用法在注释中: import android.anima ... -
迷你轻量级全方向完美滑动处理侧滑控件SlideLayout
2017-01-16 16:53 2553纯手工超级迷你轻量级全方向完美滑动处理侧滑控件(比官方 sup ... -
Effect
2017-01-05 09:57 0https://github.com/JetradarMobi ... -
动态主题库Colorful,容易地改变App的配色方案
2016-12-27 14:49 2523Colorful是一个动态主题库,允许您很容易地改变App的配 ... -
对视图的对角线切割DiagonalView
2016-12-27 14:23 1075提供对视图的对角线切割,具有很好的用户定制 基本用法 ... -
仿淘宝京东拖拽商品详情页上下滚动黏滞效果
2016-12-26 16:53 3423比较常用的效果,有现成的,如此甚好!:) import ... -
让任意view具有滑动效果的SlideUp
2016-12-26 09:26 1663基本的类,只有一个: import android.a ... -
AdvancedWebView
2016-12-21 09:44 16https://github.com/delight-im/A ... -
可设置圆角背景边框的按钮, 通过调节色彩明度自动计算按下(pressed)状态颜色
2016-11-02 22:13 1864可设置圆角背景边框的的按钮, 通过调节色彩明度自动计算按下(p ... -
网络请求库相关
2016-10-09 09:35 62https://github.com/amitshekhari ... -
ASimpleCache一个简单的缓存框架
2015-10-26 22:53 2125ASimpleCache 是一个为android制定的 轻量级 ... -
使用ViewDragHelper实现的DragLayout开门效果
2015-10-23 10:55 3337先看一下图,有个直观的了解,向下拖动handle就“开门了”: ... -
保证图片长宽比的同时拉伸图片ImageView
2015-10-16 15:40 3680按比例放大图片,不拉伸失真 import android. ...
相关推荐
第7章 数据绑定控件 300 7.1 数据绑定技术 301 实例188 格式化订货金额和订单日期并 进行绑定 301 实例189 使用绑定表达式高亮显示搜索关键字 302 ...实例243 高亮显示ListView中的数据行并实现 图片自动变换 384
实例114 封装类实现一个简单的计算器 139 实例115 使用面向对象思想查找字符串中的 所有数字 140 5.3 面向对象技术高级应用 141 实例116 自定义抽象类计算圆形的面积 141 实例117 利用接口实现选择不同的语言 143 ...
实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7 TreeView控件应用 100 实例076 将数据库数据显示到树视图中 100 实例077 用TreeView控件制作导航界面 102 实例078 用...
实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7 TreeView控件应用 100 实例076 将数据库数据显示到树视图中 100 实例077 用TreeView控件制作导航界面 102 实例078 用...
实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7 TreeView控件应用 100 实例076 将数据库数据显示到树视图中 100 实例077 用TreeView控件制作导航界面 102 实例078 用...
实例074 使ListView控件中的选择项高亮显示 97 实例075 带复选框的ListView控件 99 2.7 TreeView控件应用 100 实例076 将数据库数据显示到树视图中 100 实例077 用TreeView控件制作导航界面 102 实例078 用...
实例106 使listview控件中的选择项高亮显示 实例107 在列表视图中拖动视图项 实例108 实现带复选框的treeview控件 实例109 将xml文件节点绑定到treeview控件中 实例110 修改treeview控件的节点文本 第11章 c#面向...
实例106 使listview控件中的选择项高亮显示 173 实例107 在列表视图中拖动视图项 175 实例108 实现带复选框的treeview控件 177 实例109 将xml文件节点绑定到treeview控件中 178 实例110 修改treeview控件的节点文本 ...