Android開發學習筆記:Android很有用的程式碼片段
阿新 • • 發佈:2019-01-25
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中註冊,否則會報空指標錯誤。 如:,注意是包名+類名。