android整理的一些零散笔记.doc_第1页
android整理的一些零散笔记.doc_第2页
android整理的一些零散笔记.doc_第3页
android整理的一些零散笔记.doc_第4页
android整理的一些零散笔记.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

由麦可网整理,转载请注明出处android整理的一些零散笔记=1.SQLite图形化界面来查看数据库,使用Sqlitemansudo apt-get install sqliteman=2.关于Activity间的跳转1.Intent it = getIntent();2.Intent it = new Intent();说说第一种,假设注册了个单击跳转的事件,第一次点击是有反应的,现在退出整个应用程序,再次启动,此时的单击事件都失效,其他的监听事件都没问题,就属单击事件.=3.关于ListView 和 ExpandableListView这种列表控件Java代码 1 Override2 publicvoidonCreateContextMenu(ContextMenumenu,Viewv,ContextMenuInfomenuInfo)3 ExpandableListContextMenuInfoinfo=(ExpandableListContextMenuInfo)menuInfo;4 inttype=ExpandableListView.getPackedPositionType(info.packedPosition);5 if(type=ExpandableListView.PACKED_POSITION_TYPE_GROUP)6 Stringtitle=(TextView)info.targetView.findViewById(R.id.groupName).getText().toString();7 menu.setHeaderTitle(title);8 menu.add(0,MENU_GROUP_ADD,0,添加分组);9 menu.add(0,MENU_GROUP_DELETE,0,删除分组);10 menu.add(0,MENU_GROUP_MODIFY,0,重命名);11 menu.add(0,MENU_GROUP_ADDCONTACT,0,添加联系人);12 elseif(type=ExpandableListView.PACKED_POSITION_TYPE_CHILD)13 Stringtitle=(TextView)info.targetView.findViewById(R.id.chats_view_name).getText().toString();14 menu.setHeaderTitle(title);menu.add(0,MENU_CONTACTS_DELETE,0,删除联系人);15 menu.add(0,MENU_CONTACTS_MODIFY,0,编辑联系人);16 menu.add(0,MENU_CONTACTS_MOVE,0,移动联系人到.);17 18 Override19 publicbooleanonContextItemSelected(MenuItemitem)20 ExpandableListContextMenuInfomenuInfo=(ExpandableListContextMenuInfo)item.getMenuInfo();21 inttype=ExpandableListView.getPackedPositionType(menuInfo.packedPosition);22 if(type=ExpandableListView.PACKED_POSITION_TYPE_GROUP)23 StringgroupName=(TextView)menuInfo.targetView.findViewById(R.id.groupName).getText().toString();24 Log.i(TAG,groupName);25 switch(item.getItemId()26 caseMENU_GROUP_ADD:break;27 caseMENU_GROUP_DELETE:break;28 caseMENU_GROUP_MODIFY:break;29 caseMENU_GROUP_ADDCONTACT:break;30 31 elseif(type=ExpandableListView.PACKED_POSITION_TYPE_CHILD)32 StringchildName=(TextView)menuInfo.targetView.findViewById(R.id.chats_view_name).getText().toString();33 Log.i(TAG,childName);34 switch(item.getItemId()35 caseMENU_CONTACTS_DELETE:break;36 caseMENU_CONTACTS_MODIFY:break;37 caseMENU_CONTACTS_MOVE:break;38 39 40 returntrue;41 如果需要给group或者child 加上个长按事件这样写了,没反应,需要将实列注册给监听器Java代码 42 ExpandableListViewmElv=(ExpandableListView)findViewById(android.R.id.list);registerForContextMenu(mElv);另外需要提到一点的是,我在项目里注册了长按事件,同时group下的child也有个onClick()事件,这时候,onClick()事件无效需要给child增加单击事件Java代码 43 mElv.setOnChildClickListener(mChildClickListener);/注册group下的item的点击事件44 OnChildClickListenermChildClickListener=newOnChildClickListener()45 Override46 publicbooleanonChildClick(ExpandableListViewparent,Viewv,intgroupPosition,intchildPosition,longid)47 /TODOAuto-generatedmethodstub48 Intentintent=newIntent();49 intent.setClass(Main.this,ChatActivity.class);50 startActivity(intent);51 returnfalse;52 53 ; 今天发现 想要将列表控件中间的分割符去掉,可以通过Android:divider=null来设置.=4.让控件显示在底部(不是界面上的底部),也就是从底部开始显示,可以采用android:layout_gravity=bottom,该控件不能放在相对布局里,否则没效果=5.想做出个跟CSS里的Float效果,可以采用RelativeLayout的嵌套,在子RelativeLayout里设置android:layout_alignParentRight=true等一系列属性.=6.ListView中如何使用Button,让onClick和onItemClick事件共存,可以在布局文件里,将这个Button添加个android:focusable=false属性=7.EditText控件,让光标停在字符最後Java代码 54 EditTextinputField=newEditText(this);5556 EditableeText=inputField.getText();5758 intposition=eText.length();5960 Selection.setSelection(eText,position);=8.让控件均匀分布,整齐的排列 Java代码 61 64 67 71 72 75 78 79 82 86 87 =9.有时候发现你界面上有个EditText控件,真机上进入这个界面,会获得焦点,然后弹出一个软键盘出来,可以做如下处理,将焦点给转移.Java代码 88 89 92 =10.控制软件盘的显示与隐藏Java代码 93 /*94 *控制软键盘的显示与隐藏95 */96 privatevoidopSoftInput(Viewview,booleanhasFocus)97 if(hasFocus)98 (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE).showSoftInput(view,0);99 else100 (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE).hideSoftInputFromWindow(view.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);101 102 =11.上次写了篇关于TextView里解析包含图片的博客,这次去弄了下EditText中,点击表情,将表情图片添加到EditText (类似QQ表情的发送吧)呵呵,中间走了点弯路,开始是将EditText中的内容拿去解析,还用了正则去匹配,结果失败,SpannableString类的setSpan(Object what, int start, int end, int flags)我采用map保存了表情,看下当时写的重写的EditText的setText()方法Java代码 103 Override104 publicvoidsetText(CharSequencetext,BufferTypetype)105 /TODOAuto-generatedmethodstub106 initFaceMap();107 /需要处理的文本108 SpannableStringspannable=newSpannableString(text.toString();109 if(text!=null&faceMap!=null)110 /对表情符以img标记进行修饰,改用drawable显示出来111 Setkeys=faceMap.keySet();112 for(Stringkey:keys)113 if(text.toString().contains(key)114 Drawabledrawable=getResources().getDrawable(faceMap.get(key);115 drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight();116 /要让图片替代指定的文字就要用ImageSpan117 ImageSpanspan=newImageSpan(drawable,ImageSpan.ALIGN_BASELINE);118 intstart=text.toString().indexOf(key);119 spannable.setSpan(span,start,start+key.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);120 121122 123 124 super.setText(spannable,type);125 这样写,如果有输入相同的表情,则只有第一个显示正常,后续的都是字符,因为我只遍历了一遍map,而且是替换了一遍. 下面是简单方法(需要在布局文件里给每个表情按钮添加一个tag属性,展示的是表情,实质内容还是tag的文本,方便接收方的解析)Java代码 126 /*聊天表情图片监听器*/127 privateOnClickListenerfaceImageButtonListener=newOnClickListener()128129 Override130 publicvoidonClick(Viewv)131 /TODOAuto-generatedmethodstub132 ImageButtonimageButton=(ImageButton)v;133 StringemotionTag=imageButton.getTag().toString();134 intcursor=content.getSelectionEnd();135 content.getText().insert(cursor,emotionTag);136 SpannableStringspannable=newSpannableString(content.getText();137 Drawabledraw=imageButton.getDrawable();138 ImageSpanspan=newImageSpan(draw,ImageSpan.ALIGN_BASELINE);139 /下面flags参数换成Spannable.SPAN_I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论