1. 程式人生 > >Android開發學習筆記:Android很有用的程式碼片段

Android開發學習筆記:Android很有用的程式碼片段

1:檢視是否有儲存卡插入  
String status=Environment.getExternalStorageState();  
if(status.equals(Enviroment.MEDIA_MOUNTED)){  
   說明有SD卡插入  
}  
 
2:讓某個Activity透明  
OnCreate 中不設Layout  
this.setTheme(R.style.Theme_Transparent);  
以下是 Theme_Transparent的定義(注意transparent_bg是一副透明的圖片)  
 
3:在螢幕元素中設定控制代碼  
使用Activity.findViewById來取得螢幕上的元素的控制代碼. 使用該控制代碼您可以設定或獲取任何該物件外露的值.  
TextView msgTextView = (TextView)findViewById(R.id.msg);  
   msgTextView.setText(R.string.push_me);  
 
4:傳送簡訊  
 
            String body=”this is mms demo”;  
 
           Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(”smsto”, number, null));  
           mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);  
           mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, true);  
           mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, true);  
            startActivity(mmsintent);  
 
   5:傳送彩信  
 
           StringBuilder sb = new StringBuilder();  
 
            sb.append(”file://”);  
 
            sb.append(fd.getAbsoluteFile());  
 
            Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(”mmsto”, number, null));  
            // Below extra datas are all optional.  
            intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_SUBJECT, subject);  
            intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body);  
            intent.putExtra(Messaging.KEY_ACTION_SENDTO_CONTENT_URI, sb.toString());  
            intent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, composeMode);  
            intent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, exitOnSent);  
 
            startActivity(intent);  
 
7:傳送Mail  
 
             mime = “img/jpg”;  
            shareIntent.setDataAndType(Uri.fromFile(fd), mime);  
            shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(fd));  
            shareIntent.putExtra(Intent.EXTRA_SUBJECT, subject);  
 
            shareIntent.putExtra(Intent.EXTRA_TEXT, body);  
 
8:註冊一個 BroadcastReceiver  
 
registerReceiver(mMasterResetReciever, new IntentFilter(”oms.action.MASTERRESET”));  
 
private BroadcastReceiver mMasterResetReciever = new BroadcastReceiver() {  
 
        public void onReceive(Context context, Intent intent){  
            String action = intent.getAction();  
            if(”oms.action.MASTERRESET”.equals(action)){  
                RecoverDefaultConfig();  
            }  
        }  
 
    };  
 
9:定義ContentObserver,監聽某個資料表  
 
private ContentObserver mDownloadsObserver = new DownloadsChangeObserver(Downloads.CONTENT_URI);  
 
private class DownloadsChangeObserver extends ContentObserver {  
        public DownloadsChangeObserver(Uri uri) {  
            super(new Handler());  
 
        }  
 
        @Override 
        public void onChange(boolean selfChange) {}    
        }  
     
 
10:獲得 手機UA  
 
public String getUserAgent(){  
    String user_agent = ProductProperties.get(ProductProperties.USER_AGENT_KEY, null);  
            return user_agent;  
    }  
 
11:清空手機上Cookie  
 
CookieSyncManager.createInstance(getApplicationContext());  
        CookieManager.getInstance().removeAllCookie();  
 
12:建立GPRS 連線  
 
   //Dial the GPRS link.  
    private boolean openDataConnection() {  
        // Set up data connection.  
        DataConnection conn = DataConnection.getInstance();       
 
            if (connectMode == 0) {  
                ret = conn.openConnection(mContext, “cmwap”, “cmwap”, “cmwap”);  
            } else {  
                ret = conn.openConnection(mContext, “cmnet”, “”, “”);  
            }  
 
    }  
 
13:PreferenceActivity 用法  
 
public class Setting extends PreferenceActivity{  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        addPreferencesFromResource(R.xml.settings);  
    }  
 
}  
 
Setting.xml:  
 
            android:key=”seting2″  
            android:title=”@string/seting2″  
            android:summary=”@string/seting2″/>  
 
            android:key=”seting1″  
            android:title=”@string/seting1″  
            android:summaryOff=”@string/seting1summaryOff”  
            android:summaryOn=”@stringseting1summaryOff”/>  
 
14:通過 HttpClient從指定server獲取資料  
 
             DefaultHttpClient httpClient = new DefaultHttpClient();  
            HttpGet method = new HttpGet(“http://www.baidu.com/1.html”);  
            HttpResponse resp;  
            Reader reader = null;  
            try {  
                // AllClientPNames.TIMEOUT  
                HttpParams params = new BasicHttpParams();  
                params.setIntParameter(AllClientPNames.CONNECTION_TIMEOUT, 10000);  
                httpClient.setParams(params);  
                resp = httpClient.execute(method);  
                int status = resp.getStatusLine().getStatusCode();  
 
                if (status != HttpStatus.SC_OK) return false;  
 
                // HttpStatus.SC_OK;  
                return true;  
            } catch (ClientProtocolException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            } catch (IOException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            } finally {  
                if (reader != null) try {  
                    reader.close();  
                } catch (IOException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
 
15:顯示toast  
Toast.makeText(this._getApplicationContext(), R.string._item, Toast.LENGTH_SHORT).show();  
 
16:在當前Activity中啟動另外一個Activity  
startActivity(new Intent(this,目標Activity.class));  
 
17:從當前ContentView從查詢控制元件  
(Button)findViewById(R.id.btnAbout)      
 R.id.btnAbout指控制元件id。  
 
18:獲取螢幕寬高  
DisplayMetrics dm = new DisplayMetrics();    
//獲取視窗屬性  
 getWindowManager().getDefaultDisplay().getMetrics(dm);      
 int screenWidth = dm.widthPixels;//320    
 int screenHeight = dm.heightPixels;//480   
 
19:無標題欄、全屏  
//無標題欄    
requestWindowFeature(Window.FEATURE_NO_TITLE);    
//全屏模式    
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
  WindowManager.LayoutParams.FLAG_FULLSCREEN);   
注意在setContentView()之前呼叫,否則無效。  
 
20註冊activity  
所有用到的Activity都必須在AndroidManifest.xml中註冊,否則會報空指標錯誤。  
如:,注意是包名+類名。