熱門文章

2012年7月30日 星期一

[筆記] android app筆記

這篇是寫了第一支app之後的筆記,大家可以參考看看,跳轉後繼續





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加入以下這兩行

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時出現錯誤訊息
"

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)




沒有留言:

張貼留言