android studio APP的常用代碼
這里分享一些常用的奇怪設置代碼
Android退出activity提示再按一次返回鍵:防止用戶點錯
@Override??
public boolean onKeyDown(int keyCode, KeyEvent event)//主要是對這個函數(shù)的復寫? ?
{??
? ? if((keyCode == KeyEvent.KEYCODE_BACK)&&(event.getAction() == KeyEvent.ACTION_DOWN))??
? ? {??
? ? ? ? if(System.currentTimeMillis() - temptime >2000) // 2s內再次選擇back鍵有效? ?
? ? ? ? {??
? ? ? ? ? ? System.out.println(Toast.LENGTH_LONG);??
? ? ? ? ? ? Toast.makeText(this, "請在按一次返回退出", Toast.LENGTH_LONG).show();??
? ? ? ? ? ? temptime = System.currentTimeMillis();??
? ? ? ? }??
? ? ? ? else {??
? ? ? ? ? ? ? ?finish();? ?
? ? ? ? ? ? ? ?System.exit(0); //凡是非零都表示異常退出!0表示正常退出!? ?
? ? ? ? }??
? ? ? ? return true;? ?
? ? }??
? ? return super.onKeyDown(keyCode, event);??
}??
----------------我是分割線------------------------------------------
?//? ? ? ? 常用的修改顏色 修改圖片
messageText.setTextColor(Color.green(323232));
?messageLayout.setBackgroundColor(Color.parseColor("#acacac"));
bb1.setBackground(this.getResources().getDrawable(R.drawable.button4));
設置背景顏色
? ? ? mRelativeLayout.setBackgroundColor(getResources().getColor(R.color.RED));
? ? ? ?mRelativeLayout.setBackgroundColor(Color.parseColor("#FF0000"));
? ?Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);
----------------我是分割線------------------------------------------
Activity啟動模式設置:用戶反復切換頁面的時候,會new很多沒必要的界面 這里就要通過設置清單來解決了
? ? ? ? <activity android:name=".MainActivity" android:launchMode="singleTop" />
Activity的四種啟動模式: 根據(jù)需要對應設置就好
? ? 1. standard
? ? ? ? 模式啟動模式,每次激活Activity時都會創(chuàng)建Activity,并放入任務棧中。
? ? 2. singleTop
? ? ? ? 如果在任務的棧頂正好存在該Activity的實例, 就重用該實例,否者就會創(chuàng)建新的實例并放入棧頂(即使棧中已經(jīng)存在該Activity實例,只要不在棧頂,都會創(chuàng)建實例)。
? ? 3. singleTask
? ? ? ? 如果在棧中已經(jīng)有該Activity的實例,就重用該實例(會調用實例的onNewIntent())。重用時,會讓該實例回到棧頂,因此在它上面的實例將會被移除棧。如果棧中不存在該實例,將會創(chuàng)建新的實例放入棧中。
? ? 4. singleInstance
? ? ? ? 在一個新棧中創(chuàng)建該Activity實例,并讓多個應用共享改棧中的該Activity實例。一旦改模式的Activity的實例存在于某個棧中,任何應用再激活改Activity時都會重用該棧中的實例,其效果相當于多個應用程序共享一個應用,不管誰激活該Activity都會進入同一個應用中。
----------------我是分割線------------------------------------------
獲取當前時間戳
? Timestamp now = new Timestamp(System.currentTimeMillis());//獲取系統(tǒng)當前時間
? ? Log.d("index_Fragment", "now:" + now);
? ? ? //返回結果精確到毫秒。
另外一種帶格式的?
? ? ? ? SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss ");
? ? ? ? Date curDate = new Date(System.currentTimeMillis());
? ? ? ? ?String str = formatter.format(curDate);
----------------我是分割線------------------------------------------
? //list轉換為json
Gson gson = new Gson();??
List<Person> persons = new ArrayList<Person>();??
String str = gson.toJson(persons);??
//json轉換為list
Gson gson = new Gson();??
List<Person> persons = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());??
----------------我是分割線------------------------------------------
? ? /**? 強制打開wift*/
? ? private void ifWift() {
? ? ? ? WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
? ? ? ? if (!wifiManager.isWifiEnabled()) {
//? ? ? ? ? ? wifiManager.setWifiEnabled(false);
//? ? ? ? } else {
? ? ? ? ? ? wifiManager.setWifiEnabled(true);
//? ? ? ? ? ? Toast.makeText(mContext, "打開wift", Toast.LENGTH_SHORT).show();
? ? ? ? }
? ? }