Android_开发片段(Part 3)
1、Android中的五种布局方式:线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List View)、绝对布局(AbsoluteLayout)。
2、使用Eclipse + BlueStacks调试Android应用时,假如没搜索到BlueStacks,则切换到DDMS透视图,点击下图中红色框中的小三角,选择“Reset adb”,重起刷新一下adb设备即可
3、在Android中,在AndroidManifest.xml中设置界面为横向时,在activity注册的地方,加上:android:screenOrientation="landscape" 是确定横向模式 即可
4、StringBuffer
1)添加内容
StringBuffer sb = new StringBuffer(); String user = “test”; String pwd = “123”; sb.append(“select * from userInfo where username=“) .append(user) .append(“ and pwd=”) .append(pwd);
2)StringBuffer与String的转化
StringBuffer和String属于不同的类型,也不能直接进行强制类型转换,下面的代码都是错误的: StringBuffer s = “abc”; //赋值类型不匹配 StringBuffer s = (StringBuffer)”abc”; //不存在继承关系,无法进行强转 StringBuffer对象和String对象之间的互转的代码如下: String s = “abc”; StringBuffer sb1 = new StringBuffer(“123”); StringBuffer sb2 = new StringBuffer(s); //String转换为StringBuffer String s1 = sb1.toString(); //StringBuffer转换为String
5、Android版本:
1)可以将2.3.3当做是2.3版本的延伸或者分支
2)2.2.x指2.2后面的版本
6、Android中,fill_parent,wrap_content,match_parent"的区别:
三个属性都用来适应视图的水平或垂直大小,一个以视图的内容或尺寸为基础的布局比精确地指定视图范围更加方便。
1)fill_parent
设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。
2) wrap_content
设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为 wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。设置一个视图的尺寸为wrap_content大体等同于设置 Windows控件的Autosize属性为True。
3)match_parent
Android2.2中match_parent和fill_parent是一个意思
.两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_parent了
7、如何去掉activity中的标题栏:
this.requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉标题栏
8、控制EditText的输入的时候:
1)常用设置
android:hint="请输入数字!"//设置显示默认的提示信息 android:singleLine="true"//设置单行输入,一旦设置为true,则文字不会自动换行。 android:textColor = "#ff8c00"//字体颜色 android:textStyle="normal"//正常字体 ="bold" //粗体 ="italic"//斜体 ="bold|italic"//粗体+斜体 android:capitalize = "characters"//输入内容为大写字母(注意:可以用inputType的某个属性代替) android:textColorHighlight="#cccccc"//被选中文字的底色,默认为蓝色 android:textColorHint="#ffff00"//设置提示信息文字的颜色,默认为灰色 android:textScaleX="1.5"//控制字与字之间的间距 android:background="@null"//背景,这里没有,指透明 android:layout_gravity="center_vertical"//设置控件显示的位置:默认top,这里居中显示,还有bottom android:gray="top" //多行中指针在第一行第一位置 android:capitalize //首字母大写 android:phoneNumber //输入电话号码 android:autoLink=”all” //设置文本超链接样式当点击网址时,跳向该网址 android:cursorVisible //设定光标为显示/隐藏,默认显示。
android:ems = "10" //设置TextView或者Edittext的宽度为10个字符的宽度。当设置该属性后,控件显示的长度就为10个字符的长度,超出的部分将不显示。
2)inputType常用设置
android:inputType="textCapCharacters" 字母大写 android:inputType="textCapWords" 首字母大写 android:inputType="textCapSentences" 仅第一个字母大写 android:inputType="textMultiLine" 多行输入 android:inputType="textPassword" 密码 android:inputType="number" 数字 android:inputType="numberSigned" 带符号数字格式 android:inputType="numberDecimal" 带小数点的浮点格式 android:inputType="datetime" 时间日期 android:inputType="date" 日期键盘 android:inputType="time" 时间键盘
3)常用的数字输入设置:
android:numeric="integer" //只可以输入正整数 android:numeric="decimal" //可以输入小数 android:numeric="signed" //表示可以输入整数(正整数或者负整数) android:inputType="numberDecimal" //可以输入小数,正小数(即只可以加一个小数点的正数) android:maxLength="11" //最多可以输入11位数字 android:singleLine="true" //单行输入 android:password="true" //密码输入框,可以使得输入的内容在1秒内变成*字样 android:inputType="number" //设置只能输入数字(相当于是输入正整数),并且默认的弹出框是数字弹出框
4)EditText中,android:maxLines和android:minLines的区别:
例如:
android:maxLines="3" //使用maxLines的EditText最大行数为3行,当输入的内容超过3行后,它形 //状的大小不会根据输入内容的多少而改变,反正它显示的内容就是3行 //开始EditText里面没内容时,默认控件大小为1行 android:minLines="3" //使用minLines的EditText是至它至少显示3行内容(包括内容为空时)当输 //入的内容超过3行后,它形状的大小根据输入内容的多少而改变。
5)如何设置输入框只能输入指定的字符:
A:在EditText的XML中直接设置:
android:digits="0123456789xyzXYZ#*?" //引号里面输入你想设置的输入内容
B:使用Java代码设置:
EditText.setKeyListener(new NumberKeyListener() { @Override protected char[] getAcceptedChars() { return new char[] { 'a', 'b', '3', '4', '5', '6', '7', '8','9', }; } @Override public int getInputType() { // TODO Auto-generated method stub return android.text.InputType.TYPE_CLASS_PHONE; } });
6)设置EditText是否可以输入内容的java代码:
1.直接对EditText进行设置
editText.setFocusable(false); // 此时不可以输入内容
2.利用手机软键盘是否可以启动进行设置(注:假如手机自带硬键盘,那这个方法就有问题了)
editText.setInputType(InputType.TYPE_NULL);来禁止手机软键盘。 editText.setInputType(InputType.TYPE_CLASS_TEXT);来开启软键盘。
9.
android:ems = "10"
设置TextView或者Edittext的宽度为10个字符的宽度。当设置该属性后,控件显示的长度就为10个字符的长度,超出的部分将不显示。
10、可以通过使用setTag()和getTag()来实现对某些控件的标识,进而在界面中同类控件比较多的时候,给事件的相应做个标识
详解:
11.context 、getApplicationContext() 、getBaseContext() 区别:
getApplicationContext() 返回应用的上下文,生命周期是整个应用,应用摧毁它才摧毁 Activity.this的context 返回当前activity的上下文,属于activity ,activity 摧毁他就摧毁 getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文
12.AdapterView
1)AdapterView为容器组件,其子元素内容是由Adaper所决定的
2)AdapterView的子视图对象: ListView,GridView,Spinner,Gallery
其中:
–ListView:以垂直滑动列表形式显示一组数据。
android:layout_marginRight="20dp" //距离右侧的距离 android:layout_marginLeft=“20dp” //距离右侧的距离
17、在android4.0之后,网络访问的部分已经不可以放到主线程当中了,否则就会报错(尽量使用多线程、异步加载的方式加载数据)
18、String类型转化为Int类型:
Integer.parseInt(String)
19、如何直接选择spinner的某一项的值?(比如sprinner下拉有5个选项,我想让他显示第三项的值)
spinner.setSelection(int, true); //显示第int-1项的内容
spinner.setSelection(1, true);//比如想显示第二项内容
spn_xzshuwutype.getSelectedItemId() //表示spinner选择的是第几项(int)
spn_xzqingjiatype.setVisibility(View.VISIBLE); 显示
spn_xzqingjiatype.setVisibility(View.GONE); 表示隐藏
spn_xzqingjiatype.setVisibility(View.INVISIBLE);不显示但也不隐藏
20、按照一定的符号进行字符串的拆分的时候的注意点:
String ss = "6////////////"; String[] s = StringUtils.split(ss,"/"); String[] sw =StringUtils.splitByWholeSeparatorPreserveAllTokens(ss, "/"); s.length 是1 sw.length 是13 s在使用前必须判断大小,不然就越界了
因此,建议使用第二个拆分方法!!!!!