小编And*_*usa的帖子

Android中的动画ProgressBar更新

我在我的应用程序中使用ProgressBar,我在onProgressUpdate中更新AsyncTask.到现在为止还挺好.

我想要做的是为进度更新设置动画,这样它不仅可以"跳转"到值,而且可以平滑地移动到它.

我尝试这样做运行以下代码:

this.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            while (progressBar.getProgress() < progress) {
                progressBar.incrementProgressBy(1);
                progressBar.invalidate();
                try {
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }

    });
Run Code Online (Sandbox Code Playgroud)

问题是进度条在完成其最终值(进度变量)之前不会更新其状态.中间的所有状态都不会显示在屏幕上.调用progressBar.invalidate()也没有帮助.

有任何想法吗?谢谢!

user-interface animation android progress-bar

53
推荐指数
7
解决办法
5万
查看次数

Android库:当“实现项目”用于库的模块依赖性时,找不到类文件

我正在一个有3个模块的项目中工作,如下所示:

Project
|
|-- Common 
|
|-- SDK
|
|-- App
Run Code Online (Sandbox Code Playgroud)

Common是所有其他模块都依赖的Android库模块,但是我不必在任何地方发布它,因为它仅包含其他模块的通用代码。另一方面SDK,另一个Android库项目必须在我们的内部工件上发布。

App是SDK的示例项目。我可以毫无问题地发布SDK工件,但是当我将其导入客户端应用程序时,编译失败,因为Common找不到模块中的任何类。

对于我使用的SDK模块依赖的第三方依赖关系implementation(例如implementation 'com.squareup.okhttp3:okhttp:3.11.0',所有这些依赖关系都已成功添加到SDKPOM文件中)以及对于Common我使用的模块依赖关系implementation project(path: ':Common')

在导入SDK库的客户端应用程序中,编译器显示以下错误

Error: cannot access Foo
class file for com.acme.Foo not found
Run Code Online (Sandbox Code Playgroud)

(Foo是“通用”模块中的类)

为什么当我导入模块中SDK的所有类时Common都找不到?我期望的是编译器将两个模块合并为一个模块。有谁知道我该如何解决这个问题?

(我知道一个解决方案是Common在工件上发布,但是我不想这样做,因为这只是内部通用代码)。

dependencies android gradle android-library android-gradle-plugin

7
推荐指数
3
解决办法
3554
查看次数

Android - 资源链接失败/失败的链接引用

我检查了我的XML文件的本地历史记录,并仔细检查了我的Manifest文件,发现没有错.

在发布问题之前,我经历了很多类似的帖子和建议的答案,但发现与我的问题无关.在下面你会找到我的LOG,希望你们中的一个可以指导我完成一个解决方案!

Android资源链接失败输出:\ AndroidProjects\myApp\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:7:错误:资源android:attr/dialogCornerRadius未找到.\ AndroidProjects\myApp\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:11:错误:资源android:attr/dialogCornerRadius未找到.\ AndroidProjects\myApp\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:605:错误:资源android:attr/fontVariationSettings not found.\ AndroidProjects\myApp\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:605:错误:资源android:attr/ttcIndex未找到.错误:链接引用失败.

命令:C:\ Users\lucif.gradle\_caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\c9d8fd27aeabc6968bb2cb43f288855c\aapt2-3.2.1-4818971-windows\aapt2.exe链接 - 我\ C:\ Users\lucif\AppData\Local\Android\Sdk\platforms\android-27\android.jar\--manifest\\ AndroidProjects\myApp\app\build\intermediates\merged_manifests\debug\processDebugManifest\merged\AndroidManifest.xml\-o\\ AndroidProjects\myApp\app\build\intermediates\processed_res\debug\processDebugResources\out\resources-debug.ap_\-R\\ AndroidProjects\myApp\app\build\intermediates\incremental\processDebugResources\resources-list-for-resources-debug.ap_.txt\--auto-add-overlay\--java\\ AndroidProjects\myApp\app\build\generated \not_namespaced_r_class_sources\debug\processDebugResources\r\--custom-package\hivemind.lab.com.myApp\-0\apk\--output-text-symbols\\ AndroidProjects\myApp\app\build\intermediates\symbols\debug\R.txt\--no-version-vectors守护进程: AAPT2 aapt2-3.2.1-4818971-windows守护进程#0

xml android android-manifest aapt aapt2

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

Flutter-多选ListView

在我的应用程序中,我确实有一个列表,在该列表上,我实现了Raouf Rahiche职位的长按选择。启用选择后,我确实有一个不同的appbar,上面有一个IconButton,应该禁用选择。但是我不知道该怎么做。

到现在为止,它还没有按照应有的方式工作。该行为显示在下面的视频中。 在此处输入图片说明

longpress-selection是一个StatefulWidget:

class _SelectableItems extends State<SelectableItems> {
  bool isSelected = false;
  GoogleMaterialColors googleMaterialColors = new GoogleMaterialColors();

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return new GestureDetector(
        onLongPress: () {
          setState(() {
            isSelected = !isSelected;
          });
          widget.callback();
        },
        onTap: () {
          setState(() {
            isSelected = !isSelected;
          });
          if (widget.longPressEnabled) {
            widget.callback();
          } else {
            Navigator.push(
              context, 
              MaterialPageRoute(builder: (context)=>RecipeDetails(widget.name))
            );
          }
        },
        child: ListTile(
          leading: CircleAvatar(
            child: (isSelected
              ? Icon( …
Run Code Online (Sandbox Code Playgroud)

android ios dart flutter

7
推荐指数
1
解决办法
3158
查看次数

Android 帐单 - 我收到响应代码 5

我让我的应用内计费工作,但后来我移动了一些代码以获得更大的可扩展性,但它坏了。本质上,我试图做的是为我的插件制作一个适配器,以便以后可以更轻松地将它们添加到更少的编程工作中。我的项目在清单中具有计费权限,并且配置为在 Google Play 商店中计费,因此这不是问题。

广告活动

public class AdOnsActivity extends AppCompatActivity {
    private IInAppBillingService mService;
    private ServiceConnection mServiceConn = new ServiceConnection() {
        @Override
        public void onServiceDisconnected(ComponentName name) {
            mService = null;
        }

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            mService = IInAppBillingService.Stub.asInterface(service);
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ad_ons);

        Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
        serviceIntent.setPackage("com.android.vending");
        bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);

        listAdOns = findViewById(R.id.listAdOns);

        Handler handler = new Handler();
        handler.post(new Runnable() {
            @Override
            public void run() {
                try {
                    ... …
Run Code Online (Sandbox Code Playgroud)

java android in-app-purchase google-play

5
推荐指数
1
解决办法
3918
查看次数

干净的架构登录流程

我正在我的 Android 应用程序中开发一个具有干净架构的登录屏幕。

成功使用登录时,我需要将令牌保存到共享首选项。

在启动画面上,我需要检查用户是否登录

所以我的问题是哪里是完美的地方:

  1. 保存令牌

我应该在 LoginUseCase(域层)中保存令牌吗

class LoginUseCase(private val userRepository: UserRepository, private val schedulerProvider: SchedulerProvider) {

    fun execute(username: String, password: String): Single<Token> {
        return userRepository.login(username, password)
            .andThen(userRepository.saveToken(.....)
            .subscribeOn(schedulerProvider.getIOScheduler())
            .observeOn(schedulerProvider.getUIScheduler())
    }

}
Run Code Online (Sandbox Code Playgroud)

或者我应该将保存令牌作为用例并将令牌保存在演示层中

class LoginPresenter(private val view: LoginContract.View,
                     private val setLoginStateUseCase: SetLoginStateUseCase,
                     private val loginUseCase: LoginUseCase,
                     private val schedulerProvider: SchedulerProvider): LoginContract.Presenter {

    private val compositeDisposable = CompositeDisposable()

    override fun performLogin(username: String, password: String) {

        if (username.isNullOrEmpty() || password.isNullOrEmpty()) {
            view.onShowLoginError("Field should not be empty")
        } else {
            view.showLoading() …
Run Code Online (Sandbox Code Playgroud)

android clean-architecture

5
推荐指数
1
解决办法
2134
查看次数

Android 应用中的 Kotlin 字节码

我是一名 kotlin 和 Java 开发人员,最近我开始分析 kotlin 生成的字节码。我发现了很多包装器代码和编译器生成的其他内容,以便将我在 Kotlin 中编写的代码转换为 Java。

所以,我的问题是:

想象一下,我有一个应用程序,其代码 100% 用 kotlin 编写。依赖项和主应用程序。所有科特林。

  1. 这是否意味着将使用不同的编译器以避免 Java 兼容的字节码?
  2. 或者说编译器在这种情况下有没有做一些优化?

非常感谢。


我知道Kotlin Native,但我认为它将来只会应用于Android。

android decompiler kotlin

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

Fabric crashlytics with react native error

我正在按照本教程meta react的本机应用程序中集成 Fabric crashlytics.但是在安装Fabric软件包之后,我试着在app上吃午饭,我收到了这个错误:react-native install react-native-fabricnpm run android

配置项目':react-native-fabric'时出现问题.

无法解析所有配置文件':react-native-fabric:classpath'.

找不到lint-gradle-api.jar(com.android.tools.lint:lint-gradle-api:26.1.2).在以下位置搜索:https: //jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar

我的build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    ext {
        buildToolsVersion = "27.0.3"
        minSdkVersion = 16
        compileSdkVersion = 27
        targetSdkVersion = 26
        supportLibVersion = "27.1.1"
        googleServicesVersion = "17.1.0"
    }

    repositories {
        maven { url 'https://maven.fabric.io/public' }
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        google()
        jcenter()
    }

    dependencies {
        classpath …
Run Code Online (Sandbox Code Playgroud)

android crashlytics react-native crashlytics-android

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