• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android 编程小技巧(持续中)

android 编程小技巧(持续中)

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android面试技巧,android开发技巧,android studio技巧,android布局技巧,android开发小技巧等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

android 编程小技巧(持续中)


first:</div> Intent跳转一般存用于Activity类,但是若要在非activity类里跳转的话,解决方法是在startActivity(intent)前加mContext即上下文,最终为:mContext.startActivity(intent); 换言之,以后在非activity类里调用activity的方法 一律这么做。若不行的话 可以这么做:(Activity)mContext。</div>  </div>
second:</div> gridview中textview内容不能居中的问题。gridview中可以设置一行显示多少个item,所以他为每个item都预留了一部分空间。若用textview来填充item 而textview的属性又为wrap_content时,因为内容较少,只占据了分配空间的一部分,所以无论怎么去调试属性,看上去都像是顶格显示;故解决方法是让textview的宽度为marth_parent,这样grity = "centre"才会有:-D。</div>  </div>
third: Scrollview下面只能嵌套一个控件,当有多个控件时可以在Scrollview里套上一个Relativelayout 就可以就解决问题。</div>
forth: Android SDK Content load很慢解决方法 在C:\Documents and Settings\计算机名 这个路径下有个.android文件夹, 把这个文件夹删了 然后重启模拟器 会弹出一个对话框 Welcome to Android Development 选择NO就可以了</div>  </div>
five:</div> 在多层嵌套时 若层数过多会出现 明明控件的visibilty是visible 但在界面上仍是不可见的情况 貌似相当的诡异 解决方法:多个布局换着用 不要一直用linearlayout 可以套一个relativelayout。原因不明</div>  </div>
six:</div> 若activity里的某些响应时基于adapter数据的 而adapter又与activity分开 使得数据无法回传到activity(具体见Listview与GridView预留数据接口一文) 解决方法如下:</div> 一般来说adapter是由activity调用的 需要传入activity的activity listdata等等信息 所以 我们在就收数据时 把activity方法得到 见代码:</div>  </div> QYSPActivity activty; //调用这个adapter的activity类</div>  </div> </div> super(activity, 0, listdata);</div> activty = (QYSPActivity) activity; // 获取activity的类</div> }</div> </div>  </div> 在需要的地方调用activity里的方法</div> activty.doPost(XXXXX); //doPost()是在activity里定义好的方法 public</div> </div>  </div> 记住了 取名字的时候不要取activity因为这个名字与(QYSPActivity)activity一样,然后获得的activity方法就是空的 然后 然后 各种error 解决方法 换名字或者 this.activity =(QYSPActivity) activity; 说白了 就是this. 语句 伤不起~~</div> 目测这个方法可以举一反三 但是怎么反 待定。。。</div>
seven:</div> setContentView和inflate区别 setContentView()一旦调用, layout就会立刻显示UI;而inflate只会把Layout形成一个以view类实现成的对象,有需要时再用setContentView(view)显示出来 .一般在activity中通过setContentView()将界面显示出来,但是如果在非activity中如何对控件布局设置操作了,这需LayoutInflater动态加载</div>
eight:  </div> 动态删除listview的item
nine:</div> 使用contentView+静态类ViewHolder类来优化adapter 当我们判断convertView==null的时候,如果为空,就会根据设计好的List的Item布局(XML),来为convertView赋值,并生成一个viewHolder来绑定converView里面的各个View控件(XML布局里面的那些控件)。再用convertView的setTag将viewHolder设置到Tag中,以便系统第二次绘制ListView时从Tag中取出。(看下面代码中)  </div> ViewHolder holder;</div>
	    if(convertView == null)
            {
                holder = new ViewHolder();
                convertView = mInflater.inflate(R.layout.list_item, null);
                holder.img = (ImageView)convertView.findViewById(R.id.img);
                holder.title = (TextView)convertView.findViewById(R.id.title);
                holder.info = (TextView)convertView.findViewById(R.id.info);
                convertView.setTag(holder);
            }else
            {
                holder = (ViewHolder)convertView.getTag();
                holder.img.setImageResource(R.drawable.ic_launcher);
                holder.title.setText("loulijun");
                holder.info.setText("www.cnblogs.com/loulijun");
            }

eleven: 单个控件的xml不能放缩问题</div> 其实这里不管你将Button的layout_width和layout_height的值修改成多少,都不会有任何效果的,因为这两个值现在已经完全失去了作用。平时我们经常使用layout_width和layout_height来设置View的大小,并且一直都能正常工作,就好像这两个属性确实是用于设置View的大小的。而实际上则不然,它们其实是用于设置View在布局中的大小的,也就是说,首先View必须存在于一个布局中,之后如果将layout_width设置成match_parent表示让View的宽度填充满布局,如果设置成wrap_content表示让View的宽度刚好可以包含其内容,如果设置成具体的数值则View的宽度会变成相应的数值。这也是为什么这两个属性叫作layout_width和layout_height,而不是width和height。</div>  </div> 再来看一下我们的button_layout.xml吧,很明显Button这个控件目前不存在于任何布局当中,所以layout_width和layout_height这两个属性理所当然没有任何作用。那么怎样修改才能让按钮的大小改变呢?解决方法其实有很多种,最简单的方式就是在Button的外面再嵌套一层布局. 当然这个时候最外层的布局失去作用了。</div>
ten:throw与throws的区别 throw语句用在方法体内,表示抛出异常,由方法体内的语句处理</div> throws语句用在方法声明后面,表示再抛出异常,由调用这个方法的上一级方法中的语句来处理</div> throws主要是声明这个方法会抛出这种类型的异常,使其他地方调用它时知道要捕获这个异常。</div> throw是具体向外抛异常的动作,所以它是抛出一个异常实例。</div> throws说明你有哪个可能,倾向</div> throw的话,那就是你把那个倾向变成真实的了同时:</div> 1)throws出现在方法函数头;而throw出现在函数体;</div> 2)throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常;</div> 3)两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。</div>
twelve:gravity与 layout_gravity</div> android:gravity:是对view控件本身来说的,是用来设置view本身的文本应该显示在view的什么位置,默认值是左侧</div> android:layout_gravity:是相对于包含改元素的父元素来说的,设置该元素在父元素的什么位置</div> 对于LinearLayout如果设置android:orientation="vertical",那么android:layout_gravity的设置只在水平方向生效;如果设置android:orientation="horizontal",那么android:layout_gravity属性只在垂直方向生效。</div>  </div>  </div>
thirteen:带删除按钮及功能的输入框</div>  </div> * 因为我们不能直接给EditText设置点击事件,所以我们用记住我们按下的位置来模拟点击事件</div> * 当我们按下的位置 在 EditText的宽度 - 图标到控件右边的间距 - 图标的宽度 和</div> * EditText的宽度 - 图标到控件右边的间距之间我们就算点击了图标,竖直方向没有考虑</div> 这三行话 是关键。</div>
 </div> 代码如下:</div> boolean touchable = event.getX() > (getWidth()</div> - getPaddingRight() - mClearDrawable.getIntrinsicWidth())</div> && (event.getX() < ((getWidth() - getPaddingRight())));//mClearDrawable为删除按钮</div> if (touchable) {</div> this.setText("");</div> }</div>  </div> 在输入框中添加删除按钮</div>
forteen:open failed: EISDIR (Is a directory)  </div> 在SD卡中创建目录文件夹的时候,应该一层一层的创建文件夹,但是不能一次同时创建这两个文件夹.容易把具体创建的文件当作要创建的空文件夹来创建。将"/mnt/sdcard/zhufu/apkbus.db"当作文件夹来创建,这样就会出现EISDIR错误,解决方法:先创建前面的文件夹,在创建最终文件。</div> 如:File parentFile = new File(path);</div> if (!pa
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • android 编程小技巧(持续中)

相关文章

  • 2017-05-26RadioButton与CheckBox,radiobutton
  • 2017-05-26Android环境的搭建,Android环境搭建
  • 2017-05-26Android中Handler使用浅析,androidhandler
  • 2017-05-26【搬砖】安卓入门(1)- Java开发入门,安卓java
  • 2017-05-26App字体大小不随系统改变而改变,
  • 2017-05-26android开发环境以及genymotion虚拟机配合HBuilder测试(自总结),genymotionhbuilder
  • 2017-05-26Linux之使用NTP服务管理/同步服务器时间
  • 2017-05-26Adapter模式实战-重构鸿洋的Android建行圆形菜单
  • 2017-05-26粗暴的解释Android与蓝牙Ble之间的通信,android蓝牙ble
  • 2017-05-26Android仿联系人列表分组悬浮列表实现,自定义PinnedHeaderListView实现

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 3.4 TouchListener PK OnTouchEvent + 多点触碰
    • Android:让WebView支持&lt;input type=”file”…&gt;元素,androidwebview
    • Android检查网络连接状态
    • 关于Android中的三级缓存,
    • Android蓝牙操作笔记,android蓝牙笔记
    • 手游项目总结,游项目总结
    • Android5.0开发范例大全 读书笔记(四),android5.0范例
    • AndroidStudio怎样导入jar包,androidstudiojar
    • Android Studio发布应用
    • 使用ContentProvider访问非数据库数据

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有