2012年11月27日 星期二

[Android]Android APP程式設計初探-Shared Reference (偏好設定)

SharedReference 是Android裡面常用到的重要類別,
這邊是官方API說明頁

用法及功能都滿類似Web系統中的Cookie,可以用來儲存一些使用者的偏好設定資料,當然還有其他用途,程式設計師創意無限,這裡不贅述及獻醜。



//取得app的preference資料,Preference_Name代表的是儲存的名稱,
//如同資料庫的table 
//後面的0代表開啟模式,一般設定為0即可
SharedPreferences prefs = getSharedPreferences(Preference_Name, 0);


//取用preference中的資料,找不到key中的值,則傳回defaultValue
prefs.getInt(String key, int defaultValue);
prefs.getString(String key, String defaultValue);
...

//後面加上edit(),代表開啟為編輯模式
SharedPreferences.Editor prefs = getSharedPreferences(Preference_Name, 0).edit();

//儲存資料至preference,找不到key中的值,則傳回defaultValue
prefs.putInt(String key, int defaultValue);
prefs.putString(String key, String defaultValue);
...

[Android]在WidgetConfigure設定完成後更新Widget

假設Widget的Class名稱叫 MyWidget,且 Widget Configure的Class名稱叫WidgetConfig
我們必須在設置好所有設定值時,關閉這個WidgetConfigure的Activity,

所以設定WidConf裡有一個BtnComfirm的按鈕,這個按鈕對應一個btnComfimeOnClick的function。

MyWidget大概長這樣


public class MommyWidget extends AppWidgetProvider {

        @Override
 public void onUpdate(Context context, AppWidgetManager appWidgetManager,
   int[] appWidgetIds) {...}
....
....

...}




WidgetConfigure大概長這樣


public class WidgetConfig extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
...
...}
public void btnComfimeOnClick(View v) {
...
...
}
...

...}





只要在btnComfimeOnClick裡面增加以下程式碼即可在設置完成後更新widget
new MommyWidget().onUpdate(this, awm, widgetIds);

2012年11月21日 星期三

[Android]利用Widget直接啟動Activity

程式碼如下:




//1.在 OnUpdate()中 定義一个 Intent
     Intent startActivityIntent = new Intent(context,ObjActivity.class);
//2.實作一個 PendingIntent
     PendingIntent Pintent = PendingIntent.getActivity(context,0,startActivityIntent,0);
//3.實作RemoteView
     RemoteViews ActivityView = new RemoteViews(context.getPackageName(),R.layout.widget_layout);
//4.增加Button 的傾聽事件
   ActivityView.setOnClickPendingIntent(R.id.Button,Pintent);
//5.更新Widget
     appWidgetManager.updateAppWidget(appWidgetIds,ActivityView);

[Android]在Service中啟動Activity

程式碼如下:

public void startMainActivity(){
Intent i = new Intent();
//必須加上以下兩行才能在Service中直接啟動Activity----
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setClass(backgroundServer.this, mainActivity.class);
//------------

startActivity(i);}

2012年11月20日 星期二

javascritp壓縮工具

為了節省頻寬,雖然只有幾K的差別,不過為了讓廣大沒有寬頻的人們能夠有良好的網頁體驗,
還是要把javascript的檔案縮小
以下蒐集了幾個可以壓縮javascript檔的工具
1.Goolge 提供的  http://closure-compiler.appspot.com/home
2.ㄚ忠