小编Che*_*eng的帖子

将数据插入到由外键链接的表中

我正在使用PostgreSQL.

Customer
==================
Customer_ID | Name

Order
==============================
Order_ID | Customer_ID | Price
Run Code Online (Sandbox Code Playgroud)

要插入订单,这是我通常需要做的,

例如,"约翰"放置"1.34"定价订单.

(1) Get Customer_ID from Customer table, where name is "John"
(2) If there are no Customer_ID returned (There is no John), insert "John"
(3) Get Customer_ID from Customer table, where name is "John"
(4) Insert "Customer_ID" and "1.34" into Order table.
Run Code Online (Sandbox Code Playgroud)

这个简单的操作有4个SQL通信与数据库!

有没有更好的方法,可以使用1个SQL语句实现?

sql postgresql

45
推荐指数
1
解决办法
17万
查看次数

在您的软件项目中使用"Utils"类是否很好?

通常,在软件开发过程中,我需要各种实用功能.像压缩文件一样,提取zip文件,启动Web浏览器,获得缩放图像...

我所做的是,我将所有这些实用程序函数作为静态函数放在名为"Utils"的单个类中

https://github.com/yccheok/jstock/blob/master/src/org/yccheok/jstock/gui/Utils.java

这是一个好习惯吗?当函数的数量越来越大时,事情会变得无法管理吗?

java

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

Double.MIN_NORMAL和Double.MIN_VALUE之间的区别?

我可以知道Double.MIN_NORMAL(在1.6中引入)和Double.MIN_VALUE之间的区别是什么?

JavaDoc Double.MIN_NORMAL:

保持类型最小正正常值的常数Double.MIN_VALUE,2 -1022

JavaDoc Double.MIN_NORMAL:

保持最小正非零值类型的常量Double.MIN_VALUE,2 -1074

java ieee-754

44
推荐指数
2
解决办法
8596
查看次数

使用像Otto或EventBus这样的事件库是一种处理活动,片段和后台线程之间关系的推荐方法

在大多数情况下,处理案件时

  • 用户thread(AsyncTask)执行后台处理
  • 将计算结果传回给ActivityFragment
  • Activity或者Fragment在用户线程完成后台处理之前可能会重新创建

到目前为止,从许多可靠的来源,我可以看到推荐的方法是使用 保留片段

来源

我不时地听说事件总线库可以处理活动,片段和后台线程之间的关系.(请参阅https://github.com/greenrobot/EventBus.它表示在活动,片段和后台线程表现良好)

我遇到了一些非常受欢迎的事件总线库

我想知道,当处理活动,碎片和后台线程之间的关系时,事件总线方法与保留碎片方法有何不同?

推荐哪种方式?

android event-bus android-asynctask otto greenrobot-eventbus

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

将支持库从"23.1.1"升级到"23.2.1"后,Recycler视图项填满整个回收站视图高度

以前,我使用以下旧的支持库"23.1.1".

compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:preference-v7:23.1.1'
compile 'com.android.support:preference-v14:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'
Run Code Online (Sandbox Code Playgroud)

它工作得很好.这就是我的RecyclerView样子

在此输入图像描述

现在,由于修复了一些错误,我希望迁移到"23.2.1".

compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:support-v4:23.2.1'
compile 'com.android.support:preference-v7:23.2.1'
compile 'com.android.support:preference-v14:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'com.android.support:recyclerview-v7:23.2.1'
Run Code Online (Sandbox Code Playgroud)

然而,突然之间,我所有的RecyclerView物品,似乎都填满了RecyclerView整个高度.

在此输入图像描述

在此输入图像描述

这是我的布局文件的代码片段:https://gist.github.com/yccheok/241a0d38d56305a1be24d09b54eb1600

让我感到困惑的是,尽管我"wrap_content"在我的回收站视图项目布局中使用它,但它并没有按预期工作.

我没有使用任何自定义布局管理器RecyclerView.

http://developer.android.com/tools/support-library/index.html,我意识到23.2.1在RecyclerView这个时候做了很多改变.

  • 修复了与各种测量规范方法相关的错误.(问题201856)
  • RecyclerView在计算布局或滚动时减少了不允许适配器更改的锁定时间.(问题202046)
  • 修复了调用notifyItemChanged()不在视图中的项目时发生崩溃的问题.(问题202136)
  • 修复了RecyclerView.LayoutManager在同一测量过程中添加和删除视图时发生的崩溃.(问题193958)

我最怀疑的是https://code.google.com/p/android/issues/detail?id=201856,因为它涉及更改各种测量规范方法

到目前为止,我尝试使用一个简单的RecyclerView项目重现问题,使用23.2.1但是失败了!它没有"项目填满RecyclerView整个高度"的问题.我的猜测是,我的简单项目不能模拟生产项目的复杂布局结构.我的制作项目有以下布局

<Activity>
    <Fragment>
        <View Pager>
            <Fragment>
                <RecyclerView />
            </Fragment>
        </View Pager>
    </Fragment>
</Activity>
Run Code Online (Sandbox Code Playgroud)

经过几个小时的调试,我还是找不到这个问题的根本原因,有什么提示吗? …

android android-support-library android-recyclerview android-support-design

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

为什么要为新连接的观察者触发两次LiveData观察者

我的理解LiveData是,它将触发观察者对当前状态变化的数据,而不是一系列历史状态变化的数据.

目前,我有一个MainFragment执行Room写操作的程序,用于将非删除数据更改为已删除的数据.

我也是另一个TrashFragment观察到破坏数据的人.

请考虑以下情形.

  1. 目前有0个已删除的数据.
  2. MainFragment是当前活动的片段.TrashFragment尚未创建.
  3. MainFragment添加了1个已删除的数据.
  4. 现在,有1个已删除的数据
  5. 我们采用抽屉式导航来代替MainFragmentTrashFragment.
  6. TrashFragment的观察者将首先收到onChanged0个已删除的数据
  7. 再次,TrashFragment观察者将接下来接收onChanged1个已删除的数据

我的期望是,第(6)项不应该发生.TrashFragment应该只接收最新的已删除数据,即1.

这是我的代码


TrashFragment.java

public class TrashFragment extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        noteViewModel = ViewModelProviders.of(getActivity()).get(NoteViewModel.class);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

android android-livedata android-architecture-components

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

使用Java标准库将HTML字符转换回文本

我想使用Java标准库将一些HTML字符转换回文本.我想知道是否有任何图书馆能实现我的目的?

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here

    // "Happy & Sad" in HTML form.
    String s = "Happy &amp; Sad";
    System.out.println(s);

    try {
        // Change to "Happy & Sad". DOESN'T WORK!
        s = java.net.URLDecoder.decode(s, "UTF-8");
        System.out.println(s);
    } catch (UnsupportedEncodingException ex) {

    }
}
Run Code Online (Sandbox Code Playgroud)

html java html-entities

40
推荐指数
4
解决办法
11万
查看次数

FragmentPagerAdapter getItem未被触发

目前,使用a FragmentActivity,我使用以下代码在2种类型的片段之间切换.

private void toggle() {
    Fragment oldFragment = getSupportFragmentManager().findFragmentById(R.id.content);
    Fragment fragment = null;
    if (oldFragment instanceof ColorFragment) {
        fragment = new ViewPagerFragment();
    } else {
        fragment = new ColorFragment(android.R.color.black);
    }

    getSupportFragmentManager().beginTransaction().replace(R.id.content, fragment).commitAllowingStateLoss();
}
Run Code Online (Sandbox Code Playgroud)

2片段正在切换.

  • ColorFragment - 一个简单的片段,用纯黑色填充其背景.
  • ViewPagerFragment - 一个片段包含ViewPager.用户可以在紫色片段和蓝色片段之间滑动.

负责刷紫色和蓝色碎片的代码如下.

private static class MyFragmentPagerAdapter extends FragmentPagerAdapter {

    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return 2;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            return new ColorFragment(android.R.color.holo_purple); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager fragmentpageradapter

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

将wchar_t转换为char

我想知道这样做是否安全?

wchar_t wide = /* something */;
assert(wide >= 0 && wide < 256 &&);
char myChar = static_cast<char>(wide);
Run Code Online (Sandbox Code Playgroud)

如果我很确定宽字符将落在ASCII范围内.

c++

34
推荐指数
5
解决办法
14万
查看次数

将枚举保存到SharedPreference

我想知道,什么是正在使用的常见的方法来保存EnumSharedPrefereces?目前,我正在使用gson将枚举转换为String,然后将其保存到SharedPrefereces.

    Gson gson = new Gson();
    // country is an enum.
    String json_country = gson.toJson(country);
    sharedPreferences.edit().putString(COUNTRY, json_country);
Run Code Online (Sandbox Code Playgroud)

我在想,这是一个好方法吗?有没有更好的方法?

android

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