使用数组循环下标出错:
当使用
for(int i:数组名)
当使用一次,再次循环使用时会出现下标越界问题
ArrayList和数组
ArrayList、List、数组之间的区别,用数组存储Button时会出现出错,但是使用ArrayList<Button>存储Button操作则很顺利通过。
Android Device Monitor
当使用Android Studio 3.0以上版本时,无法通过Tools--Android 打开Android Device Monitor,先安装Java 的JDK,然后配置JAVA_HOME变量:
新建一个系统变量
变量名:JAVA_HOME
值:JDK安装的路径;
找到系统变量Path
点击编辑
Path变量名不变
在值的后面加上
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
然后找到Android的SDK文件夹,一般在USER\AppData\Local\Android\Sdk,进入tools,找到monitor.bat,双击打开等约1-5秒就可以打开DDMS了。
Android Studio使用ADB 查询数据库问题:
1、ADB要使用先要加环境变量Path,路径是:“\Android\SDK\platform-tools”
2、数据库是在/data/data/包名/databases/ 下,记得用cd命令进入时两边的 "/" 都要输入
3、sqlit3使用SQL命令查询时记得命令后面有 "';" 例如:
select * from BOOK;
LinearLayout问题:
当使用线性布局时,如何像百分比布局那样,使控件一一对齐呢?
诀窍就是把控件设置一个宽度值,之后再设定layout_weight值。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="horizontal"
android:weightSum="3">
<TextView
android:layout_width="100dp"
android:layout_height="match_parent"
android:text="@string/thisMonthStand"
android:layout_weight="1"
/>
<TextView
android:id="@+id/thisMonthStand"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="当前数据"
android:layout_weight="2"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="horizontal"
>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="@string/lastMonthSurplus"
android:layout_weight="1"
android:gravity="left"
/>
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="当前数据"
android:layout_weight="2"
/>
</LinearLayout>
写程序最容易出错的是字符串,特别是涉及数据库操作,每次没有任何提示的出错,优先检查字符串有没有拼写错误。
EditText判断输入是否为空方法:
经常需要使用EditText输入数据,控件自身带属性判断输入数据类型,判断是否为空却有很多方法:
1、"".equals(edit.getText().toString().trim()
2、android提供了一个专门判断空字符串的方法:TextUtils.isEmpty(edit.getText())
3、edit.getText().toString()==null,这方法测试了,会出错,edit.getText().toString()!=""也无法进行判断
4、edit.getText().toString().length()==0,改进后改为 edit.getText().toString().trim().length()==0
个人比较推荐第2和第4种方法。
从EditText读取出数字后如何转换数据类型及int,float等转为String:
主要是使用parseInt parseFloat parseDouble
public class ConvertUtil {
//把String转化为float
public static float convertToFloat(String number, float defaultValue) {
if (TextUtils.isEmpty(number)) {
return defaultValue;
}
try {
return Float.parseFloat(number);
} catch (Exception e) {
return defaultValue;
}
}
//把String转化为double
public static double convertToDouble(String number, double defaultValue) {
if (TextUtils.isEmpty(number)) {
return defaultValue;
}
try {
return Double.parseDouble(number);
} catch (Exception e) {
return defaultValue;
}
}
//把String转化为int
public static int convertToInt(String number, int defaultValue) {
if (TextUtils.isEmpty(number)) {
return defaultValue;
}
try {
return Integer.parseInt(number);
} catch (Exception e) {
return defaultValue;
}
}
}
//Double, Float, Long 转成字串的方法大同小异.
String s1 = String.valueOf(i);
String s2 = Integer.toString(i);
String s3 = "" + i;
DecimalFormat.format()输出字符会自动进行四舍五入。
Activity的生命周期:(基本知识,但是还是要经常温故而知新)