小编Hon*_*uan的帖子

在Kotlin中不能使用argb color int值?

当我想动画textColorTextView在科特林:

val animator = ObjectAnimator.ofInt(myTextView, "textColor", 0xFF8363FF, 0xFFC953BE)
Run Code Online (Sandbox Code Playgroud)

发生此错误:

Error:(124, 43) None of the following functions can be called with the arguments supplied:
public open fun <T : Any!> ofInt(target: TextView!, xProperty: Property<TextView!, Int!>!, yProperty: Property<TextView!, Int!>!, path: Path!): ObjectAnimator! defined in android.animation.ObjectAnimator
public open fun <T : Any!> ofInt(target: TextView!, property: Property<TextView!, Int!>!, vararg values: Int): ObjectAnimator! defined in android.animation.ObjectAnimator
public open fun ofInt(target: Any!, propertyName: String!, vararg values: Int): ObjectAnimator! defined in android.animation.ObjectAnimator
public …
Run Code Online (Sandbox Code Playgroud)

android kotlin

9
推荐指数
1
解决办法
3215
查看次数

Android onRequestPermissionsResult grantResults size> 1

请求权限后,ActivityCompat.OnRequestPermissionsResultCallback有时包含多个grantResults,只检查第一个是否安全?

培训文档检查这样的帕拉姆:

    if (grantResults.length > 0
      && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
      // permission was granted, yay! Do the
      // contacts-related task you need to do.
    } else {
      // permission denied, boo! Disable the
      // functionality that depends on this permission.
    }
Run Code Online (Sandbox Code Playgroud)

但它不清楚,没有找到文件.

android android-permissions

6
推荐指数
1
解决办法
7654
查看次数

Kotlin界面上的lambda表达式

我正在将Java项目转换为Kotlin,我很惊讶接口使得Kotlin中的代码比Java中的代码更重.

示例:我想在MyFragment中设置MainActivity中的onBackPressListener.

文件1:MainActivity,文件2:MyFragment,文件3:OnBackPressedListener(接口)

Java中的文件1,Kotlin中的文件2,Java中的文件3:

activity.setOnBackPressed { /* Do something */ }
Run Code Online (Sandbox Code Playgroud)

Kotlin中的文件1,Kotlin中的文件2,Java中的文件3:

activity.setOnBackPressed(OnBackPressedListener { /* Do something */ })
Run Code Online (Sandbox Code Playgroud)

Kotlin中的文件1,Kotlin中的文件2,Kotlin中的文件3:

activity.setOnBackPressed(object: OnBackPressedListener {
            override fun onBackPressed() {
                /* Do something */
            }
        })
Run Code Online (Sandbox Code Playgroud)

是否可以在Kotlin中使用3个文件并使用lambda来设置监听器?(在Kotlin中获取更多代码真令人沮丧..)

谢谢

java lambda android interface kotlin

6
推荐指数
2
解决办法
970
查看次数

为什么 LiveData setValue 或 PostValue 在视图中只触发一次 onChange?

LiveData setValue 应该触发了 Activity 中的 onChanged 方法,但是它仅在第一次调用,在我尝试进行分页之后,它会中断并且不再调用 onChanged,尽管我的响应确实成功并且我在日志。setValue/postValue 有什么问题?这是一个错误吗?我应该自己实现观察者模式吗?那么使用 LiveData 有什么意义呢?我的寻呼不仅仅适用于这已经 2-3 天了.....

  1. 主活动类

     public class MainActivity extends AppCompatActivity 
     private MutableLiveData<List<Photo>> mLivePhotos;
     // some code...
    
     @Override
     protected void onCreate(Bundle savedInstanceState) {
        mLivePhotos = loadData();
        mLivePhotos.observe(this, photos -> {
            Log.d(TAG, "onChanged!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            mProgressBar.setVisibility(View.GONE);
            mPhotos = photos;
            if (mIsInitialCall) {
                initiateAdapter();
                mIsInitialCall = false;
            } else {
                mAdapter.updateList(mPhotos.subList(mPageNumber, mPageNumber + 10));
            }
        });
    
        mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                int lastPosition = 
    mLayoutManager.findLastCompletelyVisibleItemPosition();
                Log.d(TAG, "onScrolled - …
    Run Code Online (Sandbox Code Playgroud)

java android kotlin android-livedata android-paging

5
推荐指数
2
解决办法
9637
查看次数

我对以下Kotlin声明感到困惑

val s = person.name ?: return
Run Code Online (Sandbox Code Playgroud)

我知道它?用于无效安全......但是做了:return什么.

nullable kotlin

3
推荐指数
1
解决办法
115
查看次数