我在我的应用程序中使用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()也没有帮助.
有任何想法吗?谢谢!
我正在一个有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'
,所有这些依赖关系都已成功添加到SDK
POM文件中)以及对于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
我检查了我的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
在我的应用程序中,我确实有一个列表,在该列表上,我实现了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) 我让我的应用内计费工作,但后来我移动了一些代码以获得更大的可扩展性,但它坏了。本质上,我试图做的是为我的插件制作一个适配器,以便以后可以更轻松地将它们添加到更少的编程工作中。我的项目在清单中具有计费权限,并且配置为在 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) 我正在我的 Android 应用程序中开发一个具有干净架构的登录屏幕。
成功使用登录时,我需要将令牌保存到共享首选项。
在启动画面上,我需要检查用户是否登录
所以我的问题是哪里是完美的地方:
我应该在 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) 我是一名 kotlin 和 Java 开发人员,最近我开始分析 kotlin 生成的字节码。我发现了很多包装器代码和编译器生成的其他内容,以便将我在 Kotlin 中编写的代码转换为 Java。
所以,我的问题是:
想象一下,我有一个应用程序,其代码 100% 用 kotlin 编写。依赖项和主应用程序。所有科特林。
非常感谢。
我知道Kotlin Native
,但我认为它将来只会应用于Android。
我正在按照本教程在meta react的本机应用程序中集成 Fabric crashlytics.但是在安装Fabric软件包之后,我试着在app上吃午饭,我收到了这个错误:react-native install react-native-fabric
npm 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 ×8
aapt ×1
aapt2 ×1
animation ×1
crashlytics ×1
dart ×1
decompiler ×1
dependencies ×1
flutter ×1
google-play ×1
gradle ×1
ios ×1
java ×1
kotlin ×1
progress-bar ×1
react-native ×1
xml ×1