我正在使用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语句实现?
通常,在软件开发过程中,我需要各种实用功能.像压缩文件一样,提取zip文件,启动Web浏览器,获得缩放图像...
我所做的是,我将所有这些实用程序函数作为静态函数放在名为"Utils"的单个类中
https://github.com/yccheok/jstock/blob/master/src/org/yccheok/jstock/gui/Utils.java
这是一个好习惯吗?当函数的数量越来越大时,事情会变得无法管理吗?
我可以知道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
在大多数情况下,处理案件时
AsyncTask)执行后台处理Activity或FragmentActivity或者Fragment在用户线程完成后台处理之前可能会重新创建到目前为止,从许多可靠的来源,我可以看到推荐的方法是使用 保留片段
我不时地听说事件总线库可以处理活动,片段和后台线程之间的关系.(请参阅https://github.com/greenrobot/EventBus.它表示在活动,片段和后台线程中表现良好)
我遇到了一些非常受欢迎的事件总线库
我想知道,当处理活动,碎片和后台线程之间的关系时,事件总线方法与保留碎片方法有何不同?
推荐哪种方式?
android event-bus android-asynctask otto greenrobot-eventbus
以前,我使用以下旧的支持库"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这个时候做了很多改变.
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
我的理解LiveData是,它将触发观察者对当前状态变化的数据,而不是一系列历史状态变化的数据.
目前,我有一个MainFragment执行Room写操作的程序,用于将非删除数据更改为已删除的数据.
我也是另一个TrashFragment观察到破坏数据的人.
请考虑以下情形.
MainFragment是当前活动的片段.TrashFragment尚未创建.MainFragment添加了1个已删除的数据.MainFragment用TrashFragment.TrashFragment的观察者将首先收到onChanged0个已删除的数据TrashFragment观察者将接下来接收onChanged1个已删除的数据 我的期望是,第(6)项不应该发生.TrashFragment应该只接收最新的已删除数据,即1.
这是我的代码
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) 我想使用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 & 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) 目前,使用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片段正在切换.
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
我想知道这样做是否安全?
wchar_t wide = /* something */;
assert(wide >= 0 && wide < 256 &&);
char myChar = static_cast<char>(wide);
Run Code Online (Sandbox Code Playgroud)
如果我很确定宽字符将落在ASCII范围内.
我想知道,什么是正在使用的常见的方法来保存Enum到SharedPrefereces?目前,我正在使用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 ×5
java ×3
android-architecture-components ×1
c++ ×1
event-bus ×1
html ×1
ieee-754 ×1
otto ×1
postgresql ×1
sql ×1