小编Che*_*eng的帖子

styles.xml和themes.xml之间有什么区别

我可以知道styles.xml和之间的区别是themes.xml什么?对我来说,它们看起来一样,因为两种XML都采用相同的格式.

<style name="...
    <item name="...
Run Code Online (Sandbox Code Playgroud)

所以,在我的应用程序,它提供的定制颜色,尺寸,绘制,......我需要既styles.xmlthemes.xml呢?我该如何决定将哪个XML放在哪个文件中?

android android-theme android-styles

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

如何避免始终从Google云端硬盘加载缓存的应用数据

目前,我正在使用Google Drive Android API将我的Android应用数据存储到Google云端硬盘应用文件夹.

这是我在保存应用程序数据时正在做的事情

  1. 为当前本地zip文件生成校验和.
  2. Google云端硬盘应用文件夹中搜索,查看是否存在现有的应用文件夹zip文件.
  3. 如果有,用当前本地zip文件覆盖现有App Folder zip文件的内容.此外,我们将使用最新的校验和重命名现有的App Folder zip文件名.
  4. 如果没有现有的App Folder zip文件,请生成一个新的App Folder zip文件,其中包含本地zip文件的内容.我们将使用最新的校验和作为App Folder zip文件名.

这是执行上述操作的代码.

生成新的App Folder zip文件,或更新现有的App Folder zip文件

public static boolean saveToGoogleDrive(GoogleApiClient googleApiClient, File file, HandleStatusable h, PublishProgressable p) {
    // Should we new or replace?

    GoogleCloudFile googleCloudFile = searchFromGoogleDrive(googleApiClient, h, p);

    try {
        p.publishProgress(JStockApplication.instance().getString(R.string.uploading));

        final long checksum = org.yccheok.jstock.gui.Utils.getChecksum(file);
        final long date = new Date().getTime();
        final int version = org.yccheok.jstock.gui.Utils.getCloudFileVersionID();
        final String title = getGoogleDriveTitle(checksum, date, …
Run Code Online (Sandbox Code Playgroud)

android google-drive-api google-drive-android-api

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

自定义枚举Serializable也是吗?

我理解Enum是Serializable.因此,这样做是安全的.(selectedCountry是enum Country)

没有客户成员变量的原始枚举

public enum Country {
    Australia,
    Austria,
    UnitedState;
}
Run Code Online (Sandbox Code Playgroud)

分段

@Override
public void onActivityCreated (Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    if (savedInstanceState != null) {
        selectedCountry = (Country)savedInstanceState.getSerializable(SELECTED_COUNTRY_KEY);
    }
}

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    savedInstanceState.putSerializable(SELECTED_COUNTRY_KEY, selectedCountry);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我在自定义枚举类中有非可序列化成员,该怎么办?例如,

原始枚举客户成员变量

package org.yccheok;

import org.yccheok.R;

/**
 *
 * @author yccheok
 */
public enum Country {
    Australia(R.drawable.flag_au),
    Austria(R.drawable.flag_at),
    UnitedState(R.drawable.flag_us);

    Country(int icon) {
        this.icon = icon;
        nonSerializableClass = new NonSerializableClass(this.toString());
    }

    public int getIcon() {
        return icon;
    } …
Run Code Online (Sandbox Code Playgroud)

java android

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

Google Developer Console中的“我们检测到您的应用程序正在使用旧版本的Google Play开发者API”警告是什么?

我们没有明确使用任何Google Play开发者API,但是我们收到以下警告:

在此处输入图片说明

这与https://developer.android.com/google/play/billing/billing_library_releases_notes相关吗?

我们当前正在使用Google Play计费库1.2.2版本(2019-03-07)

我们不打算迁移Google Play Billing Library 2.0.1版本(2019-06-06),因为它将花费很多时间,而且工作量很大。

购买必须在三天内确认

但这只是我的猜测-Google Play结算库与Google Play开发者API相关。它们可能彼此相关,也可能彼此不相关。

“我们检测到您的应用正在使用旧版本的Google Play开发者API”是什么意思?

以下是我们完整的依赖项。知道导致此警告的原因是什么?

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])


    implementation 'com.android.billingclient:billing:1.2.2'


    implementation 'androidx.multidex:multidex:2.0.1'


    def lifecycle_version = '2.0.0-beta01'
    // ViewModel and LiveData
    implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"


    // alternately - if using Java8, use the following instead of compiler
    implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"


    def room_version = '2.1.0'
    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"

    def work_version = "2.1.0"
    implementation "androidx.work:work-runtime:$work_version"

    // https://github.com/yccheok/SmoothProgressBar
    implementation 'com.github.castorflex.smoothprogressbar:library:1.1.0'

    // For Google …
Run Code Online (Sandbox Code Playgroud)

android google-api-java-client google-developers-console

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

什么是TortoiseHg叠加图标服务器

我只是安装TortoiseHg,充当Mercurial客户端工具.

但是,在我的Vista中,每当我开始时,TortoiseHg Overlay Icon Server我的通知栏都会有一个.

很烦人.那是什么意思?我可以禁用吗?

tortoisehg

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

如何使微调器宽度与最大可用项宽度相同

我意识到即使我使用wrap_content我的微调器(我避免使用,match_parent因为我不希望旋转器过长),并使用match_parent旋转器的项目视图和下拉项目视图,

我仍然发现微调器的宽度与最大项目的宽度不同

在此输入图像描述

如你所见,这UnitedKingdom是不合适的.

所以,如果我选择了UnitedKingdom,只有微调器会调整大小

在此输入图像描述

即使没有明确选择最大的项目,如何使微调器调整到最大可用项目宽度?

我的微调器XML是

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp" /> 
Run Code Online (Sandbox Code Playgroud)

和我的微调器的观点XML是

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/text_view_0"
    style="?android:attr/spinnerItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:drawablePadding="10dp"
    android:gravity="center_vertical" />
Run Code Online (Sandbox Code Playgroud)
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/checked_text_view_0"
    style="?android:attr/spinnerDropDownItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:minHeight="48dp"
    android:drawablePadding="10dp" />
Run Code Online (Sandbox Code Playgroud)

android

52
推荐指数
3
解决办法
5万
查看次数

getMeasuredHeight和getHeight有什么区别

我试着打电话View.getMeasuredHeightView.getHeightonGlobalLayout.两者都给我相同的结果.

我想知道,在什么情况下他们的价值会有所不同?有没有例子可以证明这一点?

我试着在谷歌搜索.第一个结果似乎与此问题无关:Android:如何获得自定义View的高度和宽度?

android view width

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

从Joda-Time DateTime获取java.util.Date

我有这样的代码:

// old_api(Date date)
old_api(calendar.getTime());
Run Code Online (Sandbox Code Playgroud)

目前,我需要Calendar用Joda-Time 取代DateTime.我想知道如何java.util.Date离开Joda-Time DateTime

java jodatime

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

关闭Reader后是否需要关闭InputStream?

我想知道,关闭读卡器后,是否需要关闭InputStream?

    try {
        inputStream = new java.io.FileInputStream(file);
        reader = new InputStreamReader(inputStream, Charset.forName("UTF-8"));
    }
    catch (Exception exp) {
        log.error(null, exp);
    }
    finally {
        if (false == close(reader)) {
            return null;
        }
        // Do I need to close inputStream as well?
        if (false == close(inputStream)) {
            return null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

java

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

动态格式化字符串

如果我想让我的格式化字符串动态可调,我将更改以下代码

print '%20s : %20s' % ("Python", "Very Good")
Run Code Online (Sandbox Code Playgroud)

width = 20
print ('%' + str(width) + 's : %' + str(width) + 's') % ("Python", "Very Good")
Run Code Online (Sandbox Code Playgroud)

但是,似乎字符串连接在这里很麻烦.还有其他简化方法吗?

python string

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