編輯:關於Android編程
一般用在讀取手機通訊錄上傳,這一塊比較多。
import java.util.ArrayList; import java.util.List; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.text.TextUtils; import com.iss.starwish.bean.PhoneContact; /** * 讀取手機聯系人信息 */ public class ReadPhoneContactUtil { /** * 通過內容觀察者,或者手機聯系人相關的信息 **/ public static ListgetPhoneContacts(Context mContext) { List phoneContacts = new ArrayList (); ContentResolver resolver = mContext.getContentResolver(); String[] PHONES_PROJECTION = new String[] { Phone.NUMBER,Phone.DISPLAY_NAME }; // 獲取手機聯系人 Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null); if (phoneCursor != null) { while (phoneCursor.moveToNext()) { // 得到手機號碼 String phoneNumber = phoneCursor.getString(0); // 當手機號碼為空的或者為空字段 跳過當前循環 if (TextUtils.isEmpty(phoneNumber)) continue; // 得到聯系人名稱 String contactName = phoneCursor.getString(1); phoneContacts.add(new PhoneContact(contactName,phoneNumber)); } } return phoneContacts; } }
這個最常用的是在國際化或者一鍵修改主題這一塊,根據不同的語言環境,切換不同的字符串標識。根據不同的文件名,切換不同的主題
package net.tianyouwang.utils; import android.content.Context; /** * 通過字段名稱來動態的獲取資源的id,再來使用。此類,可以通過字段名稱動態獲取id。 */ public class ResourceUtil { public static int getLayoutId(Context context, String paramString) { return context.getResources().getIdentifier(paramString, "layout", context.getPackageName()); } public static int getStringId(Context context, String paramString) { return context.getResources().getIdentifier(paramString, "string", context.getPackageName()); } public static int getDrawableId(Context context, String paramString) { return context.getResources().getIdentifier(paramString, "drawable", context.getPackageName()); } public static int getStyleId(Context context, String paramString) { return context.getResources().getIdentifier(paramString, "style", context.getPackageName()); } public static int getId(Context context, String paramString) { return context.getResources().getIdentifier(paramString, "id", context.getPackageName()); } public static int getColorId(Context context, String paramString) { return context.getResources().getIdentifier(paramString, "color", context.getPackageName()); } public static int getAnimationId(Context context, String paramString) { return context.getResources().getIdentifier(paramString, "anim", context.getPackageName()); } public static int getBooleanId(Context context, String paramString) { return context.getResources().getIdentifier(paramString, "bool", context.getPackageName()); } public static int getArrayId(Context context, String paramString) { return context.getResources().getIdentifier(paramString, "array", context.getPackageName()); } }
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import android.os.Environment; import android.os.StatFs; import android.text.TextUtils; /*** * SDCard的剩余容量判斷操作 * */ public class SDCardAvailableUtils { private static final int imageSize = 1*1024*1024;//1M public static boolean isExistSDCard() { if (android.os.Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED) && getAvailableStore(Environment.getExternalStorageDirectory().getPath()) > imageSize) { return true; } else return false; } public static void saveDatatoLocalFile(String data, String filePath) { if (!TextUtils.isEmpty(data) && !TextUtils.isEmpty(filePath)) { File file = new File(filePath); FileOutputStream outStr = null; try { if (!file.exists()) { file.createNewFile(); } outStr = new FileOutputStream(file); if (outStr != null) { outStr.write(data.getBytes()); outStr.flush(); } } catch (IOException e) { e.printStackTrace(); } finally { if (outStr != null) { try { outStr.close(); } catch (IOException e) { e.printStackTrace(); } finally { outStr = null; } } } } } /** * 獲取存儲卡的剩余容量,單位為字節 * * @param filePath * @return availableSpare */ public static long getAvailableStore(String filePath) { // 取得sdcard文件路徑 StatFs statFs = new StatFs(filePath); // 獲取block的SIZE long blocSize = statFs.getBlockSize(); // 獲取BLOCK數量 long totalBlocks = statFs.getBlockCount(); // 可使用的Block的數量 long availaBlock = statFs.getAvailableBlocks(); long total = totalBlocks * blocSize;//總的存儲空間 long availableSpare = availaBlock * blocSize;//當前可用存儲空間 return availableSpare; } }
1.一般WIFI加密有幾種方式: (1).WPA-PSK/WPA2-PSK(目前最安全家用加密) (2).WPA/WPA2(較不安全) (3).W
Android剛興起的時候,著實讓一些小眾軟件火了一把,切水果,Tom貓,吹裙子就是其中的代表,當然還有實用性很強的關機重啟軟件,我們去百度上搜索一下。截圖:一.了解CM
本文站在巨人的肩膀上 自我感覺又進了一步而成。基於翔神的大作基礎之上寫的一個為RecyclerView添加HeaderView FooterView 的另一種解決方案,上
Tab標簽頁是一個非常常用的控件,.net裡面就有multipage+tabstrip組合通過標簽的切換實現頁面的切換,同理html裡面我們常用frameset來