小编Che*_*eng的帖子

将TimeZone迁移到DateTimeZone

我正在试验Joda的时间.

    final String string_from_3rd_party = "GMT+08:00";
    // Works for standard Java TimeZone!
    System.out.println(TimeZone.getTimeZone(string_from_3rd_party));
    // Exception in thread "main" java.lang.IllegalArgumentException: The datetime zone id is not recognised: GMT+08:00
    System.out.println(DateTimeZone.forID(string_from_3rd_party));
Run Code Online (Sandbox Code Playgroud)

我如何保留string_from_3rd_party,但能够从中构建一个Joda DateTimeZone

java jodatime

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

使用HTML + JavaScript实现多列组合框

我正在寻找一个仅使用HTML + JavaScript的多列组合框.有没有可用的示例或库?当我遇到一些解决方案时,它们在ASP.NET中,但不是纯HTML + JavaScript.

这是一个示例,但它是使用Java Swing实现的.

替代文字

html javascript

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

python的最负值

我希望python最负面的是 -maxint-1

我希望有-2,会使整数溢出.

from sys import maxint
maximum_int = maxint
minimum_int = -maxint - 2
#  2147483647
# -2147483649
print maximum_int
print minimum_int
Run Code Online (Sandbox Code Playgroud)

然而.显示正确的结果,并显示比-maxint-1显示更负的值.

我可以知道为什么吗?

python

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

Mercurial - 使用命名分支克隆或分支

目前,我正在使用CVS来跟踪我的SourceForge项目.我有以下要求.

  • 我需要保持稳定的Trunk.每当用户报告严重错误时,我可以立即修复,并在几天内发布.
  • 我需要执行广泛的新功能增强,大量的代码重构开启和关闭.这可能需要几周到几个月的时间.因此,我通常会做的是,我将在分支内执行新功能增强和大量代码重构(如果有更多功能,则执行更多分支).经过足够的测试,我会将它们合并回稳定的Trunk.

大部分时间我都是一个糟糕的互联网连接.最近,我计划迁移到分布式源代码控制 - Mercurial,以便我有时可以脱机工作.

我读了下面的文章.我相信我可以使用以下方法来保留我之前在CVS分支下的工作流程.

但是,我看不出最终用户的观点有什么不同.我可以知道你们通常适用哪种神话吗?为什么?

mercurial

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

何时将应用程序设置提交到SharedPreferences(onStop或onDestroy)

我想知道,何时是将应用程序设置保存到SharedPreferences的合适时间.我们应该在期间onStop,还是onDestroy?我意识到这两种方法各有利弊.

的onStop

如果用户意图没有退出应用程序,则将应用程序设置保存到SharedPreferences似乎是多余的.他只是按回家(onStop叫) - > 长按回家 - > 重新启动应用程序再次选择应用程序

的onDestroy

用户可以通过按home(onStop调用)来杀死应用程序- > 长按home - > 在应用程序上向左滑动以杀死它.如果用户以这种方式退出应用程序,我意识到虽然应用程序被杀死但未被调用.因此,不保存应用程序设置.onDestroy

那么,在onStop或期间保存应用程序设置是否更好onDestroy

android

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

如何正确删除保留的实例片段

目前,我希望在配置更改期间保留昂贵的数据结构.我选择不使用Bundle它来处理它,因为昂贵的数据结构是不可分割的.

因此,我使用非UI片段(称为RetainInstanceFragment),setRetainInstance(true)用于保存数据结构.

public class RetainInstanceFragment extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Creating expensive data structure
        expensiveDataStructure = CreateExpensiveDataStructure();

        // Tell the framework to try to keep this fragment around
        // during a configuration change.
        setRetainInstance(true);
    }

    public ExpensiveDataStructure expensiveDataStructure = null;
}
Run Code Online (Sandbox Code Playgroud)

UI片段(称为UIFragment)将从中获取昂贵的数据结构RetainInstanceFragment.每当有配置上的变化UIFragment,UIFragment总是试图获得"缓存" RetainInstanceFragmentFragmentManager,它决定创建一个新之前RetainInstanceFragment.

示例代码如下.

public class UIFragment extends SherlockListFragment
    @Override
    public void onActivityCreated(Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

android

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

如何检查ScrollView是否可滚动

我想知道,如何检查当前ScrollView是否可滚动?看起来,没有公共方法被称为canScrollisScrollableScrollView.

可滚动:您可以在ScrollView中上下移动ViewGroup,当您上下移动滚动条时,滚动条将会显示.因此,如果只有很少的行ScrollView,并且它们可以放入单个屏幕内,ScrollView则不可滚动.

android

9
推荐指数
2
解决办法
3362
查看次数

将Snackbar置于最高z顺序,以避免被AutoCompleteTextView下拉阻止

我有一个Snackbar如下:

在此输入图像描述

但是,如果下拉的AutoCompleteTextView时间过长,则下拉将阻止Snackbar.

在此输入图像描述

正如您在上图中看到的那样,Snackbar实际上正在显示.然而,长期下降阻碍了它的可见性.您可以从上面的图像中看到

我尝试使用以下内容Snackbar code.添加bringToFront()没有多大帮助.

private void showSnackbar(String message) {
    Snackbar snackbar
            = Snackbar.make(getActivity().findViewById(R.id.content), message, Snackbar.LENGTH_LONG);
    snackbar.getView().bringToFront();
    snackbar.show();
}
Run Code Online (Sandbox Code Playgroud)

R.id.content是一个CoordinatorLayout:

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/content"
        android:background="?attr/MyActivityBackground"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:foreground="?attr/headerShadow" />
Run Code Online (Sandbox Code Playgroud)

有没有什么好办法可以避免SnackbarAutoCompleteTextView摔倒?

android autocompletetextview android-windowmanager android-snackbar android-coordinatorlayout

9
推荐指数
2
解决办法
752
查看次数

当滑动到不同的viewpager页面时,如何使用layout_scrollFlags再次显示先前隐藏的工具栏

目前,我有以下页面 ViewPager

在此输入图像描述

滚动INFO选项卡中的页面时,将隐藏工具栏.这种行为是通过实施CoordinatorLayout,AppBarLayoutapp:layout_scrollFlags

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:elevation="0dp"
        android:elevation="0dp"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >

        <android.support.v7.widget.Toolbar
            app:layout_scrollFlags="scroll|enterAlways|snap"

            android:id="@+id/toolbar"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:minHeight="?attr/actionBarSize"
            android:background="@android:color/transparent"
            app:elevation="0dp"
            android:elevation="0dp"
            app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabIndicatorColor="?attr/detailedStockTabIndicatorColor" />
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

所以,这就是滚动后的样子.

滚动后,隐藏工具栏

在此输入图像描述

由于这是一个ViewPager,如果我滑动到FINANCIAL选项卡,它将如下所示.

随后刷卡

在此输入图像描述

由于,FINANCIAL选项卡中的页面不可滚动,我们希望不要隐藏Toolbar.

我想知道,layout_scrollFlags当刷到不同的ViewPager页面时,如何使工具栏再次显示以前隐藏使用?

android

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

Google Drive REST API仍然需要GET_ACCOUNTS权限吗?

Google已弃用Google Drive Android API.

我们正在迁移到Google Drive REST API(v3).

2年前,我们有使用Google Drive REST API(v2)的经验.我们知道需要GET_ACCOUNTS权限才能GoogleAuthUtil.getToken()正常使用 - Google Drive API - 名称不能为空:null(但我已将有效的帐户名称传递给GoogleAccountCredential)

当我们查看Google Drive REST API(v3)的示例 - https://github.com/gsuitedevs/android-samples/blob/master/drive/deprecation/app/src/main/AndroidManifest.xml#L5时,我们注意到谷歌团队确实明确提到过

<!-- Permissions required by GoogleAuthUtil -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,当我们运行示例应用程序(https://github.com/gsuitedevs/android-samples/tree/master/drive/deprecation)时,Android 6和8没有弹出运行时权限对话框.但是,该应用程序可以正常工作.

我们预计应用程序无法正常运行,因为没有GET_ACCOUNTS为该应用授予任何权限.但是,它仍可以使用Google云端硬盘服务进行身份验证和通信,而不会出现问题.

这是我到目前为止测试的内容

我已经在Android 5,Android 6和Android 8中进行了测试.没有GET_ACCOUNTS为Android 6和Android 8授予运行时权限.

我也进一步的测试,通过移除GET_ACCOUNTSMANAGE_ACCOUNTS从清单完全.不过,Android 5,Android 6和Android 8都可行.在运行之前,我有清晰的缓存和清晰的应用程序存储空间.


那么,GET_ACCOUNTSGoogle Drive REST API仍然需要运行时权限请求吗?

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

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