小编Shu*_*ubh的帖子

调用onBindViewHolder时它是如何工作的?

我是初学者,我在理解一段代码时遇到了麻烦.有人可以在这个功能唤起时解释我,它的用途是什么?

这是我的代码:

    public void onBindViewHolder(myViewHolder holder, int position) {

        RecViewHolder currentdata = data.get(position);
        holder.favChecker = currentdata.getFavChecker();
        holder.serialID = currentdata.getSerialID();
        holder.theClassName = currentdata.getTheClassName();
}
Run Code Online (Sandbox Code Playgroud)

java android

55
推荐指数
2
解决办法
4万
查看次数

如何在Android中获得当前年份?

我试过了

int year = Calendar.get(Calendar.YEAR);
Run Code Online (Sandbox Code Playgroud)

但它给了我编译时错误

无法从静态上下文引用非静态方法'get(int)'.

我从observable的调用方法调用此方法.

Observable.combineLatest(ob1 ob2,
                ob3, new Func3<String, String, String, Boolean>() {
                    @Override
                    public Boolean call(String a, String b, String c) {...
Run Code Online (Sandbox Code Playgroud)

我也见过(new Date()).getYear();但它被弃用了.

java android

30
推荐指数
3
解决办法
4万
查看次数

MediaPlayer中的IllegalStateException

这是我的代码

if (player != null) {
    if(player.isPlaying()){
        player.pause();
        player.stop();
    }
    player.release();
}
Run Code Online (Sandbox Code Playgroud)

这是错误

FATAL EXCEPTION: main
java.lang.IllegalStateException
at android.media.MediaPlayer.isPlaying(Native Method)
at com.mindefy.sindhipathshala.RecViewAdapter.mediafileRelease(RecViewAdapter.java:234)
at com.mindefy.sindhipathshala.SectionFruits.onBackPressed(SectionFruits.java:252)
Run Code Online (Sandbox Code Playgroud)

我是Android的初学者,我对a的生命周期非常困惑MediaPlayer.

这是从onBackPressed()另一个函数调用的适配器中的函数Activity.player是一个类变量.

MediaPlayer在同一个文件中发布这个

public void onClick(View v) {
    try {
        if (player != null) {
            player.stop();
            player.release();
        }
    } catch (Exception e) {
    }
    player = MediaPlayer.create(activityContext, soundId);
    player.start();
}
Run Code Online (Sandbox Code Playgroud)

java android android-mediaplayer

8
推荐指数
1
解决办法
1329
查看次数

java.lang.IllegalArgumentException:必须指定idToken或accessToken

我正在尝试使用firebase实现Google登录身份验证.我正在学习教程.

错误日志:

java.lang.RuntimeException:将结果ResultInfo {who = null,request = 1002,result = -1,data = Intent {(has extras)}}传递给activity {com.clabs.codefosterapp/com.clabs.codefosterapp.SplashActivity }:java.lang.IllegalArgumentException:必须指定idToken或accessToken.

在android.app.ActivityThread.deliverResults(ActivityThread.java:3389)的android.app.ActivityThread.handleSendResult(ActivityThread.java:3432)android.app.ActivityThread.access $ 1300(ActivityThread.java:135)android.app .ActivityThread $ H.handleMessage(ActivityThread.java:1244)在android.app.Loper.loop(Looper.java:136)的android.app.Handler.dispatchMessage(Handler.java:102)android.app.ActivityThread. main(ActivityThread.java:5045)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:515)at com.android.internal.os.ZygoteInit $位于dalvik.system.NativeStart.main(本地方法)的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)中的MethodAndArgsCaller.run(ZygoteInit.java:779)引起:java.lang.IllegalArgumentException:必须指定idToken或accessToken.来自com.google.firebase.auth.GoogleAuthCredential.(未知来源)位于com.clabs.codefosterapp.SplashActivity.firebaseAuthWithGoogle(SplashActivity.java:102)的com.google.firebase.auth.GoogleAuthProvider.getCredential(未知来源)位于android.app的Android.app.ActivityThread.deliverResults(ActivityThread.java:3385)的android.app.Activity.dispatchActivityResult(Activity.java:5423)上的.clabs.codefosterapp.SplashActivity.onActivityResult(SplashActivity.java:91). ActivityThread.handleSendResult(ActivityThread.java:3432)在Android.app.Handler的android.app.ActivityThread.access $ 1300(ActivityThread.java:135)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1244).在android.app.Looper.loop(Looper.java:136)上的dispatchMessage(Handler.java:102)位于android.app.ActivityThread.main(ActivityThread.java:5045)的java.lang.reflect.Method.invokeNative(Native)方法)在java.lang.reflect.Method.invoke(Method.java:515)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(Zygo)teInit.java:779)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)at dalvik.system.NativeStart.main(Native Method)

崩溃在下面的行

 AuthCredential credential = GoogleAuthProvider.getCredential(account.getIdToken(), null);
Run Code Online (Sandbox Code Playgroud)

我的代码:

private void googleSignIn() {
        Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
        startActivityForResult(intent, SIGN_IN);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == SIGN_IN) {
            GoogleSignInResult result = …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication google-signin

7
推荐指数
2
解决办法
6547
查看次数

如何访问服务中的房间数据库

我在观察 LiveData 和从前台服务类中的 Room Database 查询数据时遇到问题。该服务在后台运行并执行各种数据库操作。

通过使用observeForever和查询可以通过访问存储库类(绕过 ViewModel)来观察 LiveData 似乎是可能的,但这似乎是一种黑客行为,而不是标准方式。

android android-service android-room android-livedata

7
推荐指数
0
解决办法
946
查看次数

holder.getAdapterPosition()与onBindViewHolder()中构造函数的position属性有什么区别

这是我的代码 -

public void onBindViewHolder(myViewHolder holder, int position) {

        //1. details obj = list.get(holder.getAdapterPosition());
        //2. details obj = list.get(position);

        holder.position = position;
    }
Run Code Online (Sandbox Code Playgroud)

我收到了警告

不要把位置视为固定; 只有立即使用并调用holder.getAdapterPosition()才能查找以后,当项目的位置在数据集中发生变化时,RecyclerView将不会再次调用onBindViewHolder,除非项目本身无效或无法确定新位置.因此,您只应在获取此方法中的相关数据项时使用position参数,并且不应保留它的副本.如果您稍后需要项目的位置(例如,在单击侦听器中),请使用getAdapterPosition(),稍后将更新适配器位置.

所以我对1和2感到困惑,我应该选择哪个?为什么?正如它说getAdapterPosition()提供更新的位置,我从列表中获取基于位置的值.

谢谢.

java android

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

Charts Pod未降级

我正在使用Xcode 8.3和Swift3。为了使用图表库,我需要使用图表3.0.2,但Cocoapods始终在安装最新的库。

我尝试了以下命令-

pod install
pod update
Run Code Online (Sandbox Code Playgroud)

但没有一个工作。这是屏幕截图 在此处输入图片说明

cocoapods swift3

2
推荐指数
1
解决办法
587
查看次数

如何在不调用其 setter 和 getter 的情况下访问 kotlin 中的变量

我正在开发一个库,其中参数的任何更改都会刷新视图。在refresh()函数中,我将一些参数的值设置为默认值。

var viewAlpha= 255
        set(value) {
            field = value
            refresh()
        }

fun refresh() {
    viewAlpha = 255
    invalidate()
}
Run Code Online (Sandbox Code Playgroud)

由于明显的原因,这会导致 StackOverflowError。

引起:java.lang.StackOverflowError: stack size 8MB

当我们在同一个类中访问它时,是否可以在不调用其 setter 的情况下访问 kotlin 中的变量。类似于我们在java中所做的。

kotlin

2
推荐指数
1
解决办法
212
查看次数

android.view.InflateException:二进制XML文件行#:错误类膨胀

这是我的xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="10dp"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginTop="10dp"
        android:layout_weight="1"
        android:background="@drawable/filebinder" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="14"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="10dp"
            android:orientation="horizontal">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="6"
                android:orientation="vertical">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:text="30 July"
                    android:textColor="#03a9f4"
                    android:textSize="32sp" />

            </LinearLayout>

        </LinearLayout>

    </LinearLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我在我的Android监视器中得到这个

07-01 18:32:04.693 10005-10005/com.mindefy.kidster E/dalvikvm: Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.zze.zzb
07-01 18:32:12.293 10005-10005/com.mindefy.kidster E/AndroidRuntime: FATAL EXCEPTION: main
                                                                     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mindefy.kidster/com.mindefy.kidster.DiaryEntry.diaryEntryTeacherActivity}: android.view.InflateException: Binary XML file line #9: …
Run Code Online (Sandbox Code Playgroud)

java xml android inflate-exception

1
推荐指数
1
解决办法
2万
查看次数

如何加速动画即将结束

这是我的代码

final ObjectAnimator transAnimation = ObjectAnimator.ofFloat(image, "y", image.getY(), 20);
                        transAnimation.setDuration(duration);
                        transAnimation.start();
Run Code Online (Sandbox Code Playgroud)

现在,当动画即将完成时,动画会变慢.我想让它加速.请帮我.

java animation android

0
推荐指数
1
解决办法
918
查看次数

如何在Ruby中将数组中的每个数字乘以2

我有一个包含字符,数字和浮点值的数组。

 a[] = {'a',2,2.5}
Run Code Online (Sandbox Code Playgroud)

我必须将每个整数和浮点数乘以2,并且不应对字符进行任何操作。

我的解决方案-

def self.double_numbers(input)
        input.map do |input_element|
            if input_element.is_a? Integer
                input_element.to_i * 2
            elsif input_element.is_a? Float
                input_element.to_Float * 2
            end
        end
    end
Run Code Online (Sandbox Code Playgroud)

输入无效

   a[] = {'a',2,2.5}
Run Code Online (Sandbox Code Playgroud)

回来了

0 4 4

ruby

0
推荐指数
1
解决办法
1116
查看次数