android笔记

这篇博客总结了Android开发中的多个实用技巧,包括EditText的输入限制、WebView的尺寸动态设置、Handler的消息管理、.9图的使用注意事项、ProgressDialog的异常处理、ListView的操作方法、字符串替换、样式更改等问题,旨在帮助开发者提升效率。
摘要由CSDN通过智能技术生成

1、对于edittext的属性
et.setInputType(InputType.TYPE_CLASS_PHONE);//只能输入电话号码
et.setInputType(InputType.TYPE_CLASS_NUMBER);//只能输入数字
et.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);//只能输入邮箱地址
et.setInputType(InputType.TYPE_NULL); // 禁止输入(不弹出输入法)
只能这样写,如果
et.setInputType(InputType.TYPE_CLASS_PHONE | InputType.TYPE_CLASS_NUMBER)就不行

2、Webview最好动态设置宽高,

RelativeLayout.LayoutParams linearParams = (RelativeLayout.LayoutParams) webView1.getLayoutParams();
linearParams.height = h;
linearParams.width = w;
webView1.setLayoutParams(linearParams);

3、handler有sendmessage,还有removemessage,
这个方法使用的前提是之前调用过sendEmptyMessageDelayed(0, time),意思是延迟time执行handler中msg.what=0的方法;
在延迟时间未到的前提下,执行removeMessages(0),则上面的handler中msg.what=0的方法取消执行;
在延迟时间已到,handler中msg.what=0的方法已执行,再执行removeMessages(0),不起作用。
removeMessages不加参数会将handler对应message queue里的消息清空

4、.9图会给所在空间设置一个padding值,需要手动设置控件padding,如果在代码里面设置.9图也需要在设置padding,view.setpadding();
比如layout设置背景为一张.9图,这个layout就像是加上padding了,里面的控件会被挤压,需要在xml中设一下layout的padding,如果在代码中设了layout背景为.9图,同样需要重新代码设layout的padding

5、项目里的ProgressDialog导致了这么一个IllegalArgumentException异常,原因是在延时线程里调用了ProgressDialog.dismiss,但此时主Activity已经destroy了。

6、dialog的setContentView需要的show方法之后调用,在show方法里将dialog所属的Decorview添加到window上,然后后面才能将setContentView中的view添加到Decorview上

7、listview.setSelection(n)显示第n个item,
可以用 listview.smoothScrollBy(distance,duration) listview.smoothScrollByOffset(offset) listview.smoothScrollToPosition(index)平滑移动
listview.setEmptyView(view) listview无数据时显示的view,listview的emptyview要和listview在一个xml中,或者addview加到同一个xml中

8、java中的string的方法 content = content.replace(” 00:00:00”, “”);替换的结果在返回值里面,一定不要忘了content =

9、listview.setFriction(ViewConfiguration.getScrollFriction() * 2);
可以降低listview滑动速度,2是缩放系数,越大滑动越慢,参考Android Listview slow down scroll speed

10、对view或viewgroup设置marginbottom,如果他下面没有其他的东西,可能marginbottom无效,可以试试paddingbottom

11、layer-list可以做出某几边有边框,类似图层概念

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- 连框颜色值 -->
    <item>
        <shape>
            <solid android:color="#000000" />
        </shape>
    </item>
    <!-- 主体背景颜色值 -->
   <item android:bottom="1dp"> <!--设置只有底部有边框-->
        <shape>
            <solid android:color="#ffffff" />
        </shape>
    </item>
</layer-list>

使用

<Button
   android:id="@+id/button1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Button1"
   android:background="@drawable/buttonstyle" />

12、改包名后如果项目的manifest中有provider,会导致新应用不能和以前应用同时安装,错误信息install failed conflicting provider,

<provider android:name=".apps.AppProvider"  
            android:authorities="game"  
            android:multiprocess="false"/>  

将android:authorities的值修改为别的就可以了
13、更换样式可以改变系统控件的样式,例如AlertDialog.Builder(MainActivity.this,AlertDialog.THEME_HOLO_LIGHT)
是这样的
这里写图片描述
改成AlertDialog.Builder(MainActivity.this,android.R.style.Theme_Material_Light_Dialog_Alert)
这里写图片描述
使用的AlertDialog包是import android.app.AlertDialog;
在6.0手机上测试,没什么问题,但是在4.0(其他没测)会崩溃,改成v7包 import android.support.v7.app.AlertDialog;还是会崩溃,感觉这里sdk有bug,最终不适用Theme ,直接AlertDialog.Builder(MainActivity.this),同时使用v7包,在低版本手机上也是显示的Material样式的Dialog
14、图片名不能大写,在一个xml里,多次用include引入同一个xml有问题
15、类可以被abstract,final,public和默认(什么都不加)修饰,因为一个类,内部类可以被public,protected,default,private,abstract,final,static修饰,方法可以被public,protected,default,private,abstract,final,static修饰,被abstract修饰时类必须也被abstract修饰,成员变量可以被public,protected,default,private,final,static修饰,代码块可以被static,default修饰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值