小编Sha*_*har的帖子

房间数据库具有一对一的关系

我有2个实体,硬币和CoinRevenue.

基本上,硬币以其他货币持有美元价格.

例如,带符号EUR的硬币,值为1.0356

@Entity(tableName = "coin")
data class Coin(
        @field:PrimaryKey(autoGenerate = false)
        var id: String = "",
        var symbol: String = "",
        var pricInUsd: Float = 0f)
Run Code Online (Sandbox Code Playgroud)

CoinRevenue是一个实体,我用它来保存用户拥有的特定硬币的硬币数量.例如,CoinRevenue与Coin Entity有关,EUR符号和金额为1000.

@Entity(tableName = "coinRevenue")
    data class CoinRevenueNew(
            @field:PrimaryKey(autoGenerate = true)
            var id: Int = 0,
            var coin: Coin? = null,
            var amount: Float = 0f)
Run Code Online (Sandbox Code Playgroud)

现在我想从数据库中获取CoinRevenue并从数据库中获取更新的Coin.

例如,我用硬币保存了硬币(EUR,1.0253),而不是使用该硬币保存了CoinRevenue.

之后我用(EUR,2.522)更新了Coin我希望CoinRevenue中的Coin对象也会更新.

我知道@Embedded只是将内部objet字段作为列添加到同一个父对象.当我使用关系时,我必须使用List或Set.但我在CoinRevenue里总是有1枚硬币.

我的硬币DA:

@Query("select * from coin order by rank")
fun getAllCoins(): Flowable<List<CoinDB>>

@Query("select * from coin where rank = 1")
fun getFirstCoin(): Maybe<CoinDB>

@Query("select …
Run Code Online (Sandbox Code Playgroud)

database android entity android-room

12
推荐指数
3
解决办法
8910
查看次数

ExoPlayer - 一个接一个地播放10个文件

我需要播放10个视频,一旦完成,下一个开始播放.

我正在使用谷歌的ExoPlayer,我在DEMO @ GitHub中使用了这个例子.我可以播放1个视频,但如果我尝试播放下一个视频,它就不会开始播放.

如果我尝试重新启动播放器,并重新开始播放,它会崩溃.

private void loadvideo() {
    Uri uri = Uri.parse(VIDEO_LIBRARY_URL + currentVideo + ".mp4");
    sampleSource = new FrameworkSampleSource(this, uri, null, 2);

    // 1. Instantiate the player.
    // 2. Construct renderers.
    videoRenderer = new MediaCodecVideoTrackRenderer(sampleSource, MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING);
    audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
    // 3. Inject the renderers through prepare.
    player.prepare(videoRenderer, audioRenderer);
    // 4. Pass the surface to the video renderer.
    surface = surfaceView.getHolder().getSurface();

    player.sendMessage(videoRenderer, MediaCodecVideoTrackRenderer.MSG_SET_SURFACE, surface);
    // 5. Start playback.
    player.setPlayWhenReady(true);
    player.addListener(new ExoPlayer.Listener() {
        @Override
        public …
Run Code Online (Sandbox Code Playgroud)

video android exoplayer

8
推荐指数
2
解决办法
9969
查看次数

如何在Android应用中实现Google音乐等垂直滑动片段/面板?

我正在尝试创建一个滑动面板,可以垂直折叠/展开而不是水平展开.

我尝试过Umano的图书馆,但对我来说这有点儿麻烦,因为我使用的是片段,而不是活动.

用片段实现这个的任何方法?

谢谢.

android android-sliding android-fragments

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

如何使用Okhttpclient创建带有参数的Http删除或放置方法?android okhttpclient

有没有人知道Android如何使用Okhttpclient创建一个带有参数的Http删除或放置方法?

使用java,这是我尝试过的:

CookieJarImpl cookieJar = new CookieJarImpl(new PersistentCookieStore(context));

okHttpClient = new OkHttpClient.Builder()
                .cookieJar(cookieJar)
                .addInterceptor(new LoggerInterceptor("TAG"))
                .connectTimeout(10000L, TimeUnit.MILLISECONDS)
                .readTimeout(10000L, TimeUnit.MILLISECONDS) //????     
                .build();
Run Code Online (Sandbox Code Playgroud)

post android put okhttp

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

房间数据库全动态查询

我有对象硬币的房间数据库.

我想用参数进行动态查询.

当我使用参数作为值时,它的效果很好,如下所示:

@Query("select * from coin ORDER BY percent_change_24h asc limit :numberOfCoins")
fun getAllTop(numberOfCoins: Int): Flowable<List<CoinDB>>
Run Code Online (Sandbox Code Playgroud)

但是当我想为WHERE子句使用参数时,这不起作用.这是我的查询:

@Query("select * from coin ORDER BY :order asc limit :numberOfCoins")
fun getAllTop(order: String, numberOfCoins: Int): Flowable<List<CoinDB>>
Run Code Online (Sandbox Code Playgroud)

我称之为:

AppDatabase.getInstance(this).coinDao().getAllTop("percent_change_24h",5)
Run Code Online (Sandbox Code Playgroud)

使用隐式WHERE子句调用相同的查询工作正常(像这样:)

@Query("select * from coin ORDER BY percent_change_24h asc limit :numberOfCoins")
fun getAllTop(order: String, numberOfCoins: Int): Flowable<List<CoinDB>>
Run Code Online (Sandbox Code Playgroud)

mysql sqlite android kotlin android-room

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

Android build release transformClassesWithDexBuilderForRelease FAILED java.lang.ArrayIndexOutOfBoundsException

I've updated Firebase (from v15.0.2) and play-services-base (from v15.0.0) to the latest versions.

I'm using

implementation 'com.google.firebase:firebase-core:16.0.5'
implementation 'com.google.android.gms:play-services-base:16.0.1'
implementation 'com.google.firebase:firebase-config:16.1.0'
implementation "com.google.firebase:firebase-messaging:17.3.4"
implementation 'com.google.firebase:firebase-ads:17.1.1'


dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:3.2.0'
}
Run Code Online (Sandbox Code Playgroud)

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

After the update from version 15, I'm getting an java.lang.ArrayIndexOutOfBoundsException when building with proguard on release.

this is the exception:

error processing /Users/adminuser/Developer/tracking-android/build/intermediates/transforms/proguard/release/0.jar
java.lang.ArrayIndexOutOfBoundsException: 145
        at org.objectweb.asm.ClassReader.readUTF(ClassReader.java:2624)
        at org.objectweb.asm.ClassReader.readUTF8(ClassReader.java:2596)
        at org.objectweb.asm.ClassReader.readAnnotationValues(ClassReader.java:1962)
        at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1095)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:698)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:500)
        at com.android.builder.desugaring.DesugaringClassAnalyzer.analyze(DesugaringClassAnalyzer.java:144)
        at com.android.builder.desugaring.DesugaringClassAnalyzer.analyzeJar(DesugaringClassAnalyzer.java:92)
        at com.android.builder.desugaring.DesugaringClassAnalyzer.analyze(DesugaringClassAnalyzer.java:63)
        at com.android.build.gradle.internal.transforms.DesugarIncrementalTransformHelper.lambda$getInitalGraphData$4(DesugarIncrementalTransformHelper.java:150)
Run Code Online (Sandbox Code Playgroud)

full stacktrace …

android proguard android-studio android-gradle-plugin android-proguard

5
推荐指数
0
解决办法
1171
查看次数