使用數組循環下標出錯:
當使用
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的生命週期:(基本知識,但是還是要經常溫故而知新)