; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView...以上代码是较为常见的代码,我们在点击的时候将当前点击的item中的内容改变,我们会发现getView()方法会调用多次的情况: 3.ListView局部刷新方法一:更新对应view的内容 这种方法先通过listView.getChildAt...android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup...getCount() { return datas == null ?...if (convertView == null) { convertView = LayoutInflater.from(context).inflate(layoutId, null
好久没写Android今天心血来潮写了一个,但是File[] files =Dir.listFiles()返回null,提示java.lang.NullPointerException: Attempt...to get length of null array,我权限也加了,看了很多文章全部无用,问题依旧存在,这篇博客https://blog.csdn.net/xiaopang_love_study/article...有时候不一定是代码的问题,而是手机权限问题,这个很正常,有时候优酷APP,很多知名APP,拍摄,录像等功能,也会没用,原因就是手机把权限设置不允许了!
width, int height) { Bitmap bitmap = null; if (bytes.length !...if ("content".equalsIgnoreCase(scheme)) { if (authority.equals("com.google.android.apps.photos.content...= null) { int column_index = cursor.getColumnIndexOrThrow("_data");...cursor.moveToFirst(); filePath = cursor.getString(column_index); cursor.close...for (color = 0; color < listView.getChildCount(); ++color) { height += listView.getChildAt
丢个栗子: android:text="@{String.valueOf(index + 1)}" android:visibility="@{age > 13 ?...绑定类会自动检查当前变量是否为null,以避免发生空指针异常。栗子:如果user变量为null,那么user.lastName也会是null。..." type="int"/> … android:text="@{list[index]}" … android...有时候,绑定表达式返回的类型与设置属性方法的参数类型并不一致。...="wrap_content"/> 这时候我们需要使用BindingConversion注解将返回值类型Int转换成期待的类型Drawable。
GetIntArrayElements 函数作用 : 将 Java 环境的 int 数组类型变量 ( jintArray 类型 ) , 转为 C/C++ 环境中的 jint 数组指针 , 返回一个指针指向...数组数据拷贝到一个新的内存空间中 , 并将该内存空间首地址返回 ; ② 将 该参数设置成指向 JNI_FALSE 的指针 : 直接使用 java 中的 int 数组地址 , 返回 java 中的 int...返回值类型说明 : jsize 类型本质还是 int 类型 ; typedef int __int32_t; typedef __int32_t int32_t; typedef int32_t...数组数据拷贝到一个新的内存空间中 , 并将该内存空间首地址返回 将 该参数设置成指向 JNI_FALSE 的指针 : 直接使用 java 中的 int 数组地址 , 返回 java...中的 int 数组的首地址 将 该参数设置成 NULL ( 推荐 ) : 表示不关心如何实现 , 让系统自动选择指针生成方式 , 一般情况下都不关心该生成方式
* 返回列表中指定位置的元素。...main/java/java/util/LinkedList.java#500 Node node(int index) 函数的核心操作 , 就是执行 index - 1 次 循环 , 找到对应的节点并返回...; 如果 index 靠近 尾部元素 , 则逆向遍历 ; /** * 返回指定元素索引处的(非空)节点。...*/ Node node(int index) { // assert isElementIndex(index); if (index 返回从列表中删除的元素。
*/ @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout...listView.setFocusableInTouchMode(false); lastStatus = currentStatus; // 当前正处于下拉或释放状态,通过返回...* * @param event */ private void setIsAbleToPull(MotionEvent event) { View firstChild = listView.getChildAt...= null) { int firstVisiblePos = listView.getFirstVisiblePosition(); if (firstVisiblePos == 0 &&...= null) { mListener.onRefresh(); } return null; } @Override protected void onProgressUpdate
WindowManager 有时候我们需要在桌面上显示一个类似悬浮窗的东西,这种效果就需要用 Window 来实现,Window 是一个抽象类,表示一个窗口,它的具体实现类是 PhoneWindow,实现位于...== null) { throw new IllegalArgumentException("display must not be null"); }...index = findViewLocked(view, false); if (index >= 0) { if (mDyingViews.contains...synchronized (mLock) { final int index = findViewLocked(view, false);...if (index >= 0) { removeViewLocked(index, true); } }
, "image/*"); startActivityForResult(i, INTENT_CODE_IMAGE_GALLERY1); 第二步,在onActivityResult中对返回的uri数据进行处理..., null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);...cursor.moveToFirst(); return cursor.getString(column_index); } 如果是MIUI系统,我们需要进行一下处理 private void..., null, null); c.moveToFirst(); int columnIndex = c.getColumnIndex(filePathColumns[0]...缺点:对于不同的手机厂商,room往往被修改了,有时候调用系统的Intent,会有一些一项不到的bug, 不能实现多张图片的选择 自定义相册 优点: 实现的样式可以自己定制,可以实现多张图片的选择等
' compile 'android.arch.lifecycle:runtime:1.0.0-alpha5' compile 'android.arch.persistence.room...@Insert long insert(Student student); //可以返回一个int类型的值,表示从数据库中被删除的行数,虽然通常并没有这个必要 @Delete...deleteById(long id); //返回一个int类型的值,表示更新影响的行数,虽然通常并没有这个必要 @Update int update(Student...但是,有时你会希望使用自定义数据类型。 要为自定义类型添加这种支持,可以提供一个TypeConverter,它将一个自定义类转换为Room保留的已知类型。...toTimestamp(Date date) { return date == null ?
返回的数据的处理 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (...= cursor ) { if ( cursor.moveToFirst() ) { int index = cursor.getColumnIndex...= null && cursor.moveToFirst()) { final int column_index = cursor.getColumnIndexOrThrow...= cursor ) { if ( cursor.moveToFirst() ) { int index = cursor.getColumnIndex...= null && cursor.moveToFirst()) { final int column_index = cursor.getColumnIndexOrThrow
java.lang.IndexOutOfBoundsException: Invalid index...= null) { mClickListener.onClick(v, getItem(position)); //这里使用 position 获取数据...这导致有时候用户想象中的和实际 RecyclerView 呈现的不一致。...(this); } ViewHolder.getAdapterPosition 方法返回当前 ViewHolder 在整个 adapter 中的位置,实时更新,用来获取数据比较靠谱。...只有当重新绘制、未绘制的时候会返回 -1,不过这只在绘制效率比较低的时候才会发生。
这些Variables会使用默认的Java值 - null(引用类型)、0(int)、false(boolean)等等,直到调用setter时。...- 左边的对象如果它不是null,选择左边的对象;或者如果它是null,选择右边的对象: android:text="@{user.displayName ??...例如,在表达式@{user.name}中,如果user是null,user.name会赋予它的默认值(null)。如果你引用user.age,age是int类型,那么它的默认值是0。..." type="int"/> … android:text="@{list[index]}" … android...例如,有关TextView的android:text属性的表达式会寻找一个setText(String)的方法。如果表达式返回一个int,Data Binding会搜索的setText(int)方法。
","display_name" }; private final int INDEX_NAME=2; private final int INDEX_NUMBER=1; private ACTVAdapter...ACTVAdapter(Context context, Cursor c) { super(context, c); } @Override /** * 该方法在点击actv中弹出的listView时,将返回值设置给...)); number.setText(cursor.getString(INDEX_NUMBER)); } } @Override public void onClick(View v)..., null, null); // Tools.printCursor(cursor); cursor.moveToNext();// 返回的cursor默认指向-1行 , int contactId..., null); cursor2.moveToNext();// 返回的cursor默认指向-1行 , String number = cursor2.getString(0); actv.setText
注:本文解析的源码基于 API 25,部分内容来自于《Android开发艺术探索》。...index = findViewLocked(view, true); ViewRootImpl root = mRoots.get(index); /.../ 替换 params mParams.remove(index); mParams.add(index, wparams); root.setLayoutParams...而 relayoutResult 就是这 IPC 最后返回的结果,也就是 Window 更新的结果。 虽然套路都懂了,但是有时候我们还是要吃。那么就去 Session 类中看看。...References Android源码分析之WindowManager.LayoutParams属性更新过程
, 就返回 item 数组对应的元素的字符串形式 if (index >= 0 && index < items.length) { return items[index...value = minValue + index; //如果 format 不为 null, 那么格式化字符串, 如果为 null, 直接返回数字 if...index) { //如果这个索引值合法, 就返回 item 数组对应的元素的字符串形式 if (index >= 0 && index index; //如果 format 不为 null, 那么格式化字符串, 如果为 null, 直接返回数字 if(format !...index, boolean animated) { //如果没有适配器或者元素个数为0 直接返回 if (adapter == null || adapter.getItemsCount
-- android:groupIndicator="@null" 取消默认图片 android:childIndicatorLeft 设置孩子左边间距 android...="match_parent" android:cacheColorHint="@null" android:childDivider="@drawable/child_bg...:dividerHeight="1dp" android:groupIndicator="@null" android:scrollbarAlwaysDrawHorizontalTrack...this.context = context; inflater = LayoutInflater.from(context); } // 返回父列表个数...@Override public int getGroupCount() { return groupList.size(); } // 返回子列表个数
= null) { // 拍照 Bundle bundle = data.getExtras(); // 获取相机返回的数据,并转换为图片格式...返回的是content://com.android.providers.media.documents/document/image:3951或者 //总结:uri的组成,eg:...sdkVersion = Build.VERSION.SDK_INT; final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT..., null, null); int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow...= null && cursor.moveToFirst()) { final int index = cursor.getColumnIndexOrThrow(column
而Service被Android系统强制销毁并再次重建的行为依赖于Service的onStartCommand()方法的返回值,常见的返回值有如下一些。...在事件分发中,有时候会问:ACTION_CANCEL什么时候触发,触摸button然后滑动到外部抬起会触发点击事件吗,再滑动回去抬起会么?...public void setContentView(int layoutResID) { if (mContentParent == null) { //初始化...(index, immediate); ··· } } private void removeViewLocked(int index, boolean immediate)...= null) { imm.windowDismissed(mViews.get(index).getWindowToken()); } } boolean
()) { int index_Address = cur.getColumnIndex("address"); int index_Person = cur.getColumnIndex...("person"); int index_Body = cur.getColumnIndex("body"); int index_Date = cur.getColumnIndex...("date"); int index_Type = cur.getColumnIndex("type"); do {...String strAddress = cur.getString(index_Address); int intPerson = cur.getInt(index_Person...(index_Date); int intType = cur.getInt(index_Type); SimpleDateFormat