Articles of android

Android – 任何Activity的根视图层次结构中存在的所有视图的相对路径生成器

背景 在android布局文件中还有很多UI元素和视图组。 有时我们不需要为视图提供id值(唯一标识符)。 在这种情况下,我们无法通过说findViewByid()find视图。 因此我们无法操纵它们。 问题是 我们如何为任何活动的所有视图生成路径,示例如下: content>LinearLayout-0>RelativeLayout-3>LinearLayout-0>TextView-2 上述行的含义是 内容是主要布局 LinearLayout是最顶层的布局 RelativeLayout-3是最顶层布局的第3个孩子 LinearLayout是3rd RelativeLayout的子代 TexView-2是LinearLayout的子代,它是最顶层LinearLayout的第3个RelativeLayout子代。 所以基本上我正在寻找下面这样的function: String path = getViewPath(view); 和 View view = findViewByPath(path) 使用案例: 实际上服务器会通过视图路径向移动应用程序广播一些命令, 然后移动应用程序将从路径中find视图并更改视图的属性

调整图层列表项中的可绘制大小

我有这个: 如何调整drawable图像的大小? 目前,它的形状太大了。

使用SqlBrite / SqlDelight(脱机数据库)和Retrofit(Http请求)的存储库模式

我正在使用SqlBrite / SqlDelight在RxJava中实现存储库模式以进行离线数据存储并为Http请求进行改造 这是一个样本: protected Observable<List> getItemsFromDb() { return database.createQuery(tableName(), selectAllStatement()) .mapToList(cursor -> selectAllMapper().map(cursor)); } public Observable<List>getItems(){ Observable<List> server = getRequest() .doOnNext(items -> { BriteDatabase.Transaction transaction = database.newTransaction(); for (Item item : items){ database.insert(tableName(), contentValues(item)); } transaction.markSuccessful(); transaction.end(); }) .flatMap(items -> getItemsFromDbById()) .delaySubscription(200, TimeUnit.MILLISECONDS); Observable<List> db = getItemsFromDbById(id) .filter(items -> items != null && items.size() […]

Android wifi热点客户端连接事件

我在我的Android应用程序中以编程方式连接不同的设备与wifi热点AP,如何检测连接和断开连接的客户端以及我以编程方式打开的wifi热点AP? Android API中是否有任何回调事件可以提供有关各个设备的连接或断开连接事件的信息? 提前致谢。

如何用android gradle resConfigs打包默认语言

我知道如何使用resConfigs限制语言支持: defaultConfig { … resConfig “en” } 但是如何限制语言只支持默认语言(在values /文件夹中)? 有没有办法避免打包存储在values-xx / folders中的任何语言资源? 谢谢

找不到SDK位置

我最近创建了一个新的本地仓库,并从我们的远程仓库中提取了一些代码。 当我打开项目时,我在控制台中收到一条消息: Gradle sync failed: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable. Consult IDE log for more details 我按照这里的说明设置环境variables(我在Mac中)并检查我的local.properties: sdk.dir=/Users/admin/Library/Android/sdk 所以,这两件事都解决了,我仍然得到这个错误。 我搜索过,但没有解决方案适合我。 有帮助吗? 谢谢。 编辑: 这只发生在一个项目中。 其余的项目完美无缺。

ActionBar Compat ActionBarActivity setTitle在Android 2.X中不起作用

我的问题和这个问题一样 。 我按照此说明设置了Android支持库。 (我正在使用支持库,修订版19.0.1) 在这个问题上,谷歌的工作人员说“这已在支持库v19中修复”。 但是,它在我的设备(姜饼)中不起作用。 我试图find解决方案,但我找不到。 有任何想法吗?

java.lang.ClassNotFoundException:dalvik.system.BaseDexClassLoader.findClass

我在Google Play开发者控制台中不断收到此错误报告。 它看起来像MultiDex错误。 java.lang.RuntimeException: at android.app.LoadedApk.makeApplication(LoadedApk.java:516) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4514) at android.app.ActivityThread.access$1500(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:5299) at java.lang.reflect.Method.invokeNative(Native Method:0) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) at dalvik.system.NativeStart.main(Native Method:0) Caused by: java.lang.ClassNotFoundException: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:497) at java.lang.ClassLoader.loadClass(ClassLoader.java:457) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:511) 我已经将它添加到gradle.build: defaultConfig { … minSdkVersion 14 targetSdkVersion 21 … // Enabling multidex […]

如何为Android设置Google Cloud Messaging?

我正在尝试按照演示实施Google Cloud Messaging for Android (GCM) 但我无法执行像$ ant war , $ android update project –name GCMDemo -p . –target android-16 $ android update project –name GCMDemo -p . –target android-16 。 我正在使用wamp server并针对Android 8+ 任何帮助将受到高度赞赏

lockCanvas()返回不同的canvas

尝试在单个canvas上绘制每个ms的内容。 我的意思是只向canvas添加细节,而不是每帧重绘一次。 所以这段代码给了我三个不同的canvas。 第三,然后再次。 为什么? public void run() { this.run = true; Canvas canvas = null; while (run) { try { canvas = this.surfaceHolder.lockCanvas(); synchronized (this.surfaceHolder) { Thread.sleep(delay); draw(new Img(canvas, size)); } } catch (InterruptedException e) { e.printStackTrace(); } finally { if (canvas != null) { this.surfaceHolder.unlockCanvasAndPost(canvas); } } synchronized (this) { if (wait) { […]