1.
避免旋轉螢幕時重新載入畫面
在AndroidManifest.xml加上
<activity android:name=".Activity"
android:configChanges="orientation|keyboardHidden"></activity>
.java 加上
//設定螢幕方向改變後的事情
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
}
2.固定螢幕方向
在AndroidManifest.xml找
<activity android:name="Activity"></activity>變成
<activity android:name=".Activity"android:screenOrientation="portrait"></activity>
3.android 上架時要把複製保護的勾勾消掉,不然無法下載自己的app
4.使用google map API找debug.keystore 時要先用cmd進入java/jre6/bin (路徑依版本而定)
輸入
keytool -list -keystore C:\Users\User\.android\debug.keystore
5.避免開啟應用程式時自動focus在欄位
在xml的Linear Layout加入以下這兩行
在xml的Linear Layout加入以下這兩行
android:focusable="true"
android:focusableInTouchMode="true"
6.progressbar 設定為visible的話不能用...(這滿誇張的)
7.繁重的工作不能放在OnCreat,要用AsyncTask
8.避免Editview在即時換算直接輸入小數點會出現錯誤,新增TextWatcher設定
addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
if( Editview .getText().toString().equals("."))
Editview .setText("");
9.寫SQLite時出現錯誤訊息
"
重開Eclipse 或者到工作管理員把adb.exe結束
10.儲存資料
private void store() throws IOException {
// TODO Auto-generated method stub
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("Jack玩樂誌");
bw.newLine(); //換行
}
bw.flush();
fos.close();
11.讀取資料
private void restore() throws IOException {
// TODO Auto-generated method stub
tableLayout = (TableLayout) findViewById(R.id.table);
FileInputStream fis = openFileInput(FILENAME);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String s = "";
s=br.readLine();
}
12.Fragment 的用法
這裡我是用support v4 的Fragment,筆記一下原理
MainActivity 的 setContentView(R.layout.activity_main); 去取版面配置
activity_main.xml 裡面如果有fragment的話
<fragment android:name="com.example.tttt.FFragment"
android:id="@+id/headlines_fragment"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
就會去找這個fragment
public class FFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.view, container,false);
}
}
7.繁重的工作不能放在OnCreat,要用AsyncTask
8.避免Editview在即時換算直接輸入小數點會出現錯誤,新增TextWatcher設定
addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
if( Editview .getText().toString().equals("."))
Editview .setText("");
9.寫SQLite時出現錯誤訊息
"
attempt to write a readonly database
"重開Eclipse 或者到工作管理員把adb.exe結束
10.儲存資料
private void store() throws IOException {
// TODO Auto-generated method stub
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("Jack玩樂誌");
bw.newLine(); //換行
}
bw.flush();
fos.close();
11.讀取資料
private void restore() throws IOException {
// TODO Auto-generated method stub
tableLayout = (TableLayout) findViewById(R.id.table);
FileInputStream fis = openFileInput(FILENAME);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String s = "";
s=br.readLine();
}
12.Fragment 的用法
這裡我是用support v4 的Fragment,筆記一下原理
MainActivity 的 setContentView(R.layout.activity_main); 去取版面配置
activity_main.xml 裡面如果有fragment的話
<fragment android:name="com.example.tttt.FFragment"
android:id="@+id/headlines_fragment"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
就會去找這個fragment
public class FFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.view, container,false);
}
}
這個fragment就會回傳要顯示的東西 (view.xml)
沒有留言:
張貼留言