zoukankan      html  css  js  c++  java
  • android 常用代码

    1、androidMainfest.xml文件中在此Activity中写入 android:windowSoftInputMode="adjustPan"  可以让界面不被弹出的键盘挤上去

    2、在androidmanifest.xml中的application标签中加入android:persistent="true" 属性后的确就能够达到保证该应用程序所在进程不会被LMK杀死。但前提是应用程序必须是系统应用

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

    3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

    android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

    不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

    4、加入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) {// 竖屏

                    }
            }

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

    5、输入法

    // 隐藏输入法
    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);
    }

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

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

     6、 Task(栈),Activity跳转时用到Intent Flag

    Intent intent = new Intent(this,xxx.class);
    1、如果activity在task存在,拿到最顶端,不会启动新的Activity
      intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);


    2、如果activity在task存在,将Activity之上的所有Activity结束掉

      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);


    3、默认的跳转类型,将Activity放到一个新的Task中
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);


    4、如果Activity已经运行到了Task,再次跳转不会在运行这个Activity
      intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

    
    
    

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

    7、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。

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

    8、全屏

    方法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,效果更好
     
    9、设置Activity为Dialog的形式 android:theme="@android:style/Theme.Dialog"
      将Activity设置成半透明的效果 android:theme="@android:style/Theme.Translucent" 
     
    10、list滚动时出现黑色底的问题:
    解决方法:
    方法一:
     在XML中设置android:cacheColorHint="#00000000"
    方法二:
     在代码中设置listView.setCacheColorHint(0);

    11、编辑框中指定输入的类型,android:digits="num"
     
    12、利用反射机制,获取drawable文件夹下的图片名称:
    Field[] fields = R.drawable.class.getDeclaredFields();
    for(Field field:fields){
        if(!"icon".equals(field.getName())){
            sb.append(field.getName() + " ");
        }
    }
    mTextView.setText(sb.toString());
     
    13、保持屏幕长开:
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    14、
    让ListView的滚动条定位到最后一行
    设置以下两个属性:
    android:stackFromBottom="true"
    android:transcriptMode="alwaysScroll"

    15、Android ListView的美化方法:
    listview的上边和下边有黑色的阴影
           代码解决:ndroid:fadingEdge=”none”
    lsitview的每一项之间需要设置一个图片做为间隔
           代码解决:android:divider=”@drawable/list_driver”
    listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来
           代码解决:android:scrollingCache=”false
    自定义listview的时候,会出现下面选中一个空间黑色底色的情况,破坏整体美观度
           代码解决:android:cacheColorHint=“#00000000
    默认显示选中的item为橙黄底色,有时候我们需要去掉这种效果
           代码解决:android:listSelector属性

    16、
    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);
     
    17、使用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备用工具

  • 相关阅读:
    Vue:Vue CLI 3的学习
    npm:基础
    Spring Boot:@Value和@ConfigurationProperties
    Spring Boot:引入依赖时何时不指定版本号
    数据库事物的四大特性及隔离级别
    Python之xml文档及配置文件处理(ElementTree模块、ConfigParser模块)
    Python之数据序列化(json、pickle、shelve)
    Python之文件与目录操作(os、zipfile、tarfile、shutil)
    Python之日期与时间处理模块(date和datetime)
    Python之列表生成式、生成器、可迭代对象与迭代器
  • 原文地址:https://www.cnblogs.com/navy-wang/p/3665133.html
Copyright © 2011-2022 走看看