android 經常使用代碼

一、androidMainfest.xml文件中在此Activity中寫入 android:windowSoftInputMode="adjustPan"  可讓界面不被彈出的鍵盤擠上去html

 

二、在androidmanifest.xml中的application標籤中加入android:persistent="true" 屬性後的確就可以達到保證該應用程序所在進程不會被LMK殺死。但前提是應用程序必須是系統應用java

----------------------------------------------------------------------------android

三、設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會從新調用各個生命週期,只會執行onConfigurationChanged方法git

android:configChanges="orientation"時,切屏仍是會從新調用各個生命週期,切橫、豎屏時只會執行一次app

不設置Activity的android:configChanges時,切屏會從新調用各個生命週期,切橫屏時會執行一次,切豎屏時會執行兩次ide

 

四、加入android:screenOrientation=」landscape」屬性便可(landscape是橫向,portrait是縱向)。工具

另外,在activity裏面重寫 onConfigurationChanged
@Override
        public void onConfigurationChanged(Configuration newConfig) {
                super.onConfigurationChanged(newConfig);
                if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {// 橫屏
  
                } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {// 豎屏

                }
        }

---------------------------------------------------------------------------this

五、輸入法spa

// 隱藏輸入法
InputMethodManager imm = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
// 顯示或者隱藏輸入法
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

/** 隱藏輸入法 */
public static void hideInputMethodPanel(Window window) {
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}.net

/** 隱藏輸入法 */
public static void hideInputMethod(Context context, View view) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

-------------------------------------------------------------

 六、 Task(棧),Activity跳轉時用到Intent Flag

Intent intent = new Intent(this,xxx.class);
一、若是activity在task存在,拿到最頂端,不會啓動新的Activity
  intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);


二、若是activity在task存在,將Activity之上的全部Activity結束掉

  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


三、默認的跳轉類型,將Activity放到一個新的Task中
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);


四、若是Activity已經運行到了Task,再次跳轉不會在運行這個Activity
  intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

 

 

-------------------------------------------------------

七、AndroidManifest.xml中的<Activity>標籤的android:launchMode屬性設置;啓動模式有4種,分別爲:standard、singleTop、singleTask、singleInstance。

standard和singleTop屬性的 Activity 的實例能夠屬於任何任務(Task),而且能夠位於Activity堆棧的任何位置。

standard和singleTop的區別在於:

對於standard模式的Activity在被調用時會建立一個新的實例,全部實例處理同一個Intent對象;

對於singleTop模式的Activity,若是被調用的任務已經有一個這樣的Activity 在堆棧的頂端,那麼不會有新的實例建立, 任務會使用當前頂端的Activity實例來處理Intent對象。

singleTask 和 singleInstance模式的Activity 僅可用於啓動任務,這種模式的Activity老是處在Activity堆棧的最底端,而且一個任務(task)中只能被實例化一次。

singleTask 和 singleInstance的區別在於:

對於 singleInstance模式的Activity, 任務的Activity堆棧中若是有這樣的Activity,那它將是堆棧中的惟一的 Activity, 當前任務收到的 Intent 都由它處理,由它開啓的其餘 Activity 將在其餘任務中被啓動。

對於 SingleTask模式的Activity,它在堆棧底端,其上方能夠有其餘Activity被建立, 可是,若是發給該Activity的Intent對象到來時該Activity不在堆棧頂端,那麼該Intent對象將被丟棄,可是界面仍是會切換到當前的Activity。

----------------------------------------------------------------------------------

八、全屏

方法1:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
方法2:
配置文件中,針對activity加上如下配置:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
相對於方法一,沒有短暫的title,效果更好
 
九、設置Activity爲Dialog的形式 android:theme="@android:style/Theme.Dialog"
  將Activity設置成半透明的效果  android:theme= "@android:style/Theme.Translucent" 
 
十、 list滾動時出現黑色底的問題:
解決方法:
方法一:
  在XML中設置android:cacheColorHint= "#00000000"
方法二:
  在代碼中設置listView.setCacheColorHint( 0 );

十一、編輯框中指定輸入的類型,android:digits= "num"
 
十二、 利用反射機制,獲取drawable文件夾下的圖片名稱:
Field[] fields = R.drawable. class .getDeclaredFields();
for (Field field:fields){
     if (! "icon" .equals(field.getName())){
         sb.append(field.getName() +  "\t" );
     }
}
mTextView.setText(sb.toString());
 
1三、 保持屏幕長開:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

1四、
讓ListView的滾動條定位到最後一行
設置如下兩個屬性:
android:stackFromBottom= "true"
android:transcriptMode= "alwaysScroll"

1五、Android ListView的美化方法:
listview的上邊和下邊有黑色的陰影
       代碼解決:ndroid:fadingEdge=」none」
lsitview的每一項之間須要設置一個圖片作爲間隔
       代碼解決:android:divider=」@drawable/list_driver」
listview在拖動的時候背景圖片消失變成黑色背景。等到拖動完畢咱們本身的背景圖片才顯示出來
       代碼解決:android:scrollingCache=」false
自定義listview的時候,會出現下面選中一個空間黑色底色的狀況,破壞總體美觀度
       代碼解決:android:cacheColorHint=「#00000000
默認顯示選中的item爲橙黃底色,有時候咱們須要去掉這種效果
       代碼解決:android:listSelector屬性

1六、
TextView底部加橫線:mTextView.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG);
TextView中間加橫線:mTextView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG);
 
1七、使用2.3版本的sdk纔有用,設置proguard.config=proguard.cfg就能夠使用混淆碼
在4.0版本建的工程中發現proguard.cfg沒了,多了proguard-project.txt這個文件,直接將 proguard.cfg這個文件拷過去用了。

狀況2:

Proguard returned with error code 1. See console
異常:

java.lang.ArrayIndexOutOfBoundsException

解決辦法:將proguard.cfg中的"-dontpreverify"改爲「-dontoptimize

---------------------------------------------------------------------------------

 

http://www.open-open.com/lib/view/open1340837992436.html ---------httpPost、httpGet、HttpURLConnection、SD卡

http://www.360doc.com/content/12/0918/23/6522739_236839486.shtml

http://www.oschina.net/question/565065_85958

http://m.blog.csdn.net/blog/dreamer0924/8533121

http://m.blog.csdn.net/blog/dreamer0924/8533121

http://blog.csdn.net/Zengyangtech/article/details/5748674

http://www.eoeandroid.com/thread-191674-1-1.html ----------android備用工具

相關文章
相關標籤/搜索